Appleseed is a purely functional, highly extensible Lisp dialect. From a small core of builtins, it leverages the power of Lisp to grow a full-featured standard library. It is a successor to the earlier, simpler language tinylisp.
Appleseed is still very much under construction. The following features have been implemented:
- A simple yet powerful macro system that allows for defining new syntactic constructs.
- Tail-call optimization--including modulo cons--allowing unlimited recursion depth for properly written functions.
- Lazy evaluation of lists.
- An events system that allows for non-functional behaviors like I/O and randomness (currently in the beginning stages).
The following features are planned:
- Lexical scope and closures.
- A fully extensible type system.
- Exception handling.
The quickest way to run Appleseed code is at Try It Online, provided by Dennis.
If you git clone
Appleseed to your computer (note: requires Python 3), you have two options: run a file, or use the interactive REPL prompt.
- To run code from a file, pass the filename as a command-line argument to the interpreter:
./appleseed file.asl
(Linux) orappleseed.py file.asl
(Windows). - To run code from the interactive prompt, run the interpreter without command-line arguments.
Helpful commands when using the REPL:
(help)
displays a help document.(restart)
clears all user-defined names, starting over from scratch.(quit)
ends the session.