You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
3 weeks ago | |
---|---|---|
src | 3 weeks ago | |
.gitignore | 3 weeks ago | |
Cargo.lock | 4 weeks ago | |
Cargo.toml | 4 weeks ago | |
README.md | 4 weeks ago | |
build.rs | 4 weeks ago | |
grammar.ebnf | 3 weeks ago |
README.md
Language syntax
Abstractions:
\x:T.e
Where x
is an identifier, T
a type, and e
an expression
Aplication:
lhs rhs
Where lhs
and rhs
are expressions
Variable:
x
Where x
is an identifier
Constants:
n
where n is an number
or
true
or
false
Types
The language has the primitive types Bool
and Nat
, and arrow types
of the form T1 -> T2
, where multiple of these can be composed, and
parentesis can be used to specify associativity, ex: (Nat -> Nat) -> Nat -> Nat
Using the repl
When entering a valid expression into the repl, it will be type checked, and if well typed, its beta reduced form and type is printed.
The repl offers additional commands starting with :
, the following commands are availaibe
:t expr
: get the type ofexpr
, but do not beta reduce:ctx ident : T
: add a variable identfied byident
of typeT
to the type checking context, arrow types need to be in parentesis