-
Notifications
You must be signed in to change notification settings - Fork 0
recursive-madman/lisp
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is (as you probably guessed) a Lisp interpreter. Current language features are as follows: * Five data types, three types of atoms: * numbers -- like 1, 2, 3 (i.e. only integers) * symbols -- like `foo', `bar', .. * strings -- like the infamous "Hello world !" two container types: * cons cells -- like (1 2) * quoted values -- like 'foo * Two special forms: * lambda -- creates a function * cond -- branches by evaluating conditions * Exceptions (but no way to catch them) * An _extensive_ set of builtin functions: * as many as four (!) arithmetic integer operations (+, -, *, /) * parse -- parses a string into an expression * eval -- evaluates an expression * print -- prints an expression to stdout, followed by a line break * set -- sets a symbol's value in the current symbol table * eq -- checks if two things are equal * cons -- creates a cons cell * car -- returns the first value of a cons cell * cdr -- returns the second value of a cons cell * typeof -- returns the type of a given thing as a symbol, i.e. one of: number, symbol, string, cons, quote, function * An impressive collection of memory leaks (DEPRECATED) * No tail recursion. See MANUAL for details.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published