bash/cauliflambda

Parse Nominal Definitions

Closed this issue · 3 comments

bash commented

Syntax is very similar to schematic definitions

True -> (λt f.t)
False -> (λt f.f)

Definitions may reference other definitions but they may not be
mutually recursive to prevent infinite loops while expanding definitions.
(You should use a Y-combinator if you need mutual recursion)

bash commented

Alternative plan:
Definitions can only reference previously defined definitions. This is a lot easier to validate and I could then allow definitions inside formulas to have some sort of let x = y statements.

bash commented
\f x .
    y -> (x x)
    f y

is translated to:

\f x .
    (\y . f y)  
    (x x)

This has the advantage that I'm only introducing syntax sugar, not new functionality.

bash commented

implemented in d5d546f