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.
|
|
7 months ago | |
|---|---|---|
| src | 7 months ago | |
| .gitignore | 7 months ago | |
| Cargo.lock | 8 months ago | |
| Cargo.toml | 8 months ago | |
| README.md | 8 months ago | |
| build.rs | 8 months ago | |
| grammar.ebnf | 7 months 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 byidentof typeTto the type checking context, arrow types need to be in parentesis