Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 1.04 KB

README.md

File metadata and controls

40 lines (28 loc) · 1.04 KB

Documentation


Iocularia

Iocularia is a language, which looks similar to Haskell, but everything is a function. It supports mutual recursion. Its syntax is shown below:

Left Hand Side

The left hand side of an expression contains, separated by space, the name of the expression and the variables it binds to:

main x

Right Hand Side

The right hand side can either be a term (the name of another expression or a bound variable) or the application of two right hand sides. In this left associative application, anything that is not a term must be put in brackets.

f x
(f x) g
f (x g)
f g h i
f (g h) i

Expression

An expression is a combination of a left hand side and a right hand side, and ends with a semicolon:

id x = x;

The final program that the transpiler outputs is the expression named main.

Lambda Calculus

The outputted program is a form of indexed lambda calculus, which uses the De Bruijn level (0 indexed).