Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chouffe/rlisp
Lisp Interpreter in Racket
https://github.com/chouffe/rlisp
interpreter lisp racket
Last synced: 14 days ago
JSON representation
Lisp Interpreter in Racket
- Host: GitHub
- URL: https://github.com/chouffe/rlisp
- Owner: Chouffe
- Created: 2016-04-08T17:02:13.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-04-08T17:03:24.000Z (almost 9 years ago)
- Last Synced: 2024-11-19T19:07:23.319Z (3 months ago)
- Topics: interpreter, lisp, racket
- Language: Racket
- Size: 2.93 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Racket Lisp
Small Lisp Interpreter in Racket. A playground for implementing language constructs and lisp functionalities (macros, recursive functions, TCO, ...)
## Features
* Recursive functions
* Lisp1
* Lexical scoping## Values
The following values have been implemented:
* var -> immutable variable
* int -> integer
* fun -> lambda
* aunit -> '()
* apair -> cons cell
* closure -> regular closure### TODO
* bool
* string
* set
* hashmap
* keyword
* symbol## Special Forms
The following special forms have been implemented:
* ifgreater
* mlet -> let### TODO
* cond
## Macros
The macro system is just implemented via regular racket functions that get executed before compile time -> macro expansion time.
* ifaunit
* mlet* -> let*### TODO
* clojure like threading macros -> and ->>
* if (when the bool type is added)## Core language functions
* map
### TODO
* filter
* remove
* reduce -> foldl/foldr