An open API service indexing awesome lists of open source software.

https://github.com/iwillspeak/formula-one

An Experimental LISP
https://github.com/iwillspeak/formula-one

interpreter lisp lisp-interpreter programming-language

Last synced: 9 months ago
JSON representation

An Experimental LISP

Awesome Lists containing this project

README

          

# 🏎 Formula One - An Experimental LISP 🏎

Formula One is an experiment in ways to ergonomically build syntax trees and transformations in Rust.

```
🏎 > (begin (define foo 1007) (define bar 330) (+ foo bar))
~> 1337
```

## Blog Post

The early development of this language is discussed on my blog in [Lisp in Two Days with Rust][blogpost]

[blogpost]: https://willspeak.me/2019/07/10/lisp-in-two-days-with-rust.html

## Features

The language is a small subset of the LISP described in . Notably it supports the following special forms:

* `(if )` for conditional evaluation of `` or ``
* `(define )` binding a value to a symbol
* `( ...)` for calling a named function ``

All evaluation takes place in a single global environment. The language does not support user-defined functions with `labda` or the nested environments that they would entail. Quoting of values with `'` or `quote` is also not supported. The parser recognises comments and whitespace but is yet to bind them to primary tokens as trivia.

## 🐉 Here be Dragons 🐉

This is only intended as an experiment to develop techniques for building syntax trees in code. It isn't intended as a production use language.