Skip to content

louiswins/unlambda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Unlambda

Unlambda is an esoteric, nearly-pure, functional programming language that has no variables, data structures or code constructs (such as loops or conditionals). Unlambda only has functions. Every function takes exactly one argument, which is also a function, and returns a function. Nevertheless, Unlambda is fully Turing complete.

Unlambda is perhaps the closest you can get to the pure SKI lambda calculus, from whence it gets its Turing completeness. However, it also includes such modern programming constructs as promises/thunks and call/cc. They are included mostly to make it harder to understand.

This implementation

This is a complete (modulo bugs) interpreter for Unlambda 2. It is pretty similar to the c-refcnt version included in the Unlambda distribution because I followed the implementation hints on the language's home page. I also peeked at that implementation a few times when I was stuck, but there are some differences (for example, his tasks became my actions, are allocated on the heap, and have an extra type).

About

unl is an Unlambda interpreter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published