Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/john-science/slowloris

A DIY-LISP.
https://github.com/john-science/slowloris

language lisp

Last synced: 2 months ago
JSON representation

A DIY-LISP.

Awesome Lists containing this project

README

        

## Slow Loris

> A simple, interpreted LISP, written in Python.

### What Slow Loris Is

A simple, but fun language. Features include:

- A handful of data types (booleans, floats, integers, lists, strings, and symbols)
- Variables
- First class functions with lexical scoping
- Basic error handling
- A nice, homemade-quality feeling

Initially, it will *not* have:

- A proper type system
- Good performance
- keyword function arguments
- And much, much more

The [syntax](parts/language.md) is in the Lisp family:

```lisp
(def fact
# Factorial function
(lambda (n)
(if (eq n 0)
1 # Factorial of 0 is 1
(* n (fact (- n 1))))))

# When parsing the file, the last statement is returned
(fact 5)
```

### Prerequisites

To use Slow Loris, make sure you have installed [Python](http://www.python.org/), [Pip](https://pypi.python.org/pypi/pip), and Nose (pip install nose).
*Slow Loris is based on Python 2.7, because the `ast` standard library is wildly inferior in Python 3.*

### API Documentation

The full documentation to this little language can be found here:

- [Part 1: Parsing Slow Loris](parts/1.md)
- [Part 2: Evaluating Slow Loris](parts/2.md)
- [Part 3: REPL](parts/3.md)
- [Part 4: Variables and Types](parts/4.md)
- [Part 5: Functions](parts/5.md)
- [Part 6: Lists](parts/6.md)
- [Part 7: The Standard Library](parts/7.md)