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.

1007 B

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 of expr, but do not beta reduce
  • :ctx ident : T: add a variable identfied by ident of type T to the type checking context, arrow types need to be in parentesis