This is a universal machine, using the untyped lambda calculus, visualized as a tree with d3.js. # is an abstraction. @ is application. Numbers are variables.

The syntax is a simplified version of the De Brujin index, meaning vars match to their Nth parent lambda (#), N being the var name. It requires explicit applications, ie you can't drop parens.

It gets parsed by a parser generated by PEG.js. Grammar and source on github.

Fork me on GitHub