A statically typed and lazy evaluated implementation of Lambda Calculus.
lamb [--target {linux|windows}] [-i|-S|-c|--link] [-o FILE] [FILE...] FILE
The directory where lamb is being installed. default: ~/.lamb
$ make -j8
$ make install # to install ~/.lamb
$ export PATH="$HOME/.lamb/bin:$PATH"
'
| (
| )
| ->
| .
| :
| :=
| ^
| def
| in
| let
| type
| val
| NAT | CHAR | STRING | IDWhere NAT, CHAR, STRING and ID are classes of lexemes. The classes are defined by regular expressions.
/[\t\n\r ]+/
/--[^\n]*\n/
/[0-9]+/
/'([^\\']|\\.)'/
/"([^\\"]|\\.)*"/
/[A-Z_a-z][A-Z_a-z0-9]*/
SPACE and COMMENT are ignored by lexers.
type
ID | val
ID :
ty | def
ID asc :=
exp->
ty'
ID | ID | (
ty )
:
ty^
ID asc .
exp | let
ID asc :=
exp in
exp(
exp )
GPLv3.