> a functional language with some experimental orignal feature
- dynamic strong type
- mark sweep garbage collection
- clousure
- curry
- serial call
- procedure compose
- perforation closure
- number
- string
- tuple :mutable scalable leanear table,easy to iteration
- list :immutable binary tree,easy to recurse
- blank ::= re”\s”;
- id ::= re”[a-zA-Z@_$][a-zA-Z@_$0-9]*”;
- list ::= {“’”}”[“[expr {blank expr}]”]”
- tupple ::= {“’”}”<”[expr {blank expr}]”>”
//the “’” can protect expressions in above twe container not to be evaluated.
- expr ::= define|call|atom|func|id;
- define ::= id “=” expr;
//immutable,define or changed to new value
- set ::= call “=” expr;
//mutable,directly change what call returned
- call ::= callee “(” [ expr {blank expr} ] “)”;
- dot ::= object “.” callee
//pass object as single argument to right callee As an syntax sugar for passing right style
- callee ::= id|call
- object ::= callee|dot
- func ::= “" [ id {blank id }” ] “->” expr;
- atom ::= number | string | list | tupple;