2020-06-11 10:13:00 +00:00
|
|
|
# MadLisp
|
|
|
|
|
2020-12-20 02:22:14 +00:00
|
|
|
MadLisp is a [Lisp](https://en.wikipedia.org/wiki/Lisp_%28programming_language%29) interpreter written in PHP.
|
2020-06-12 10:03:26 +00:00
|
|
|
|
2020-06-11 10:13:00 +00:00
|
|
|
## Requirements
|
|
|
|
|
2020-12-20 02:22:14 +00:00
|
|
|
The project requires PHP 7.4 or newer and [Composer](https://getcomposer.org/).
|
2020-06-17 11:10:33 +00:00
|
|
|
|
2020-12-20 02:22:14 +00:00
|
|
|
## Quickstart
|
2020-06-17 11:10:33 +00:00
|
|
|
|
2020-12-20 03:01:42 +00:00
|
|
|
Create a new directory and require the project using composer:
|
|
|
|
|
|
|
|
```text
|
|
|
|
$ mkdir mylisp
|
|
|
|
$ cd mylisp
|
2021-07-25 11:28:33 +00:00
|
|
|
$ composer require maddy83/madlisp
|
2020-12-20 03:01:42 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Use the `vendor/bin/madlisp` executable to start the interpreter. Start the REPL with the `-r` option:
|
|
|
|
|
|
|
|
```text
|
|
|
|
$ vendor/bin/madlisp -r
|
|
|
|
>
|
|
|
|
```
|
|
|
|
|
|
|
|
You can evaluate Lisp code interactively inside the REPL:
|
|
|
|
|
|
|
|
```text
|
|
|
|
> (+ 1 2 3)
|
|
|
|
6
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively you can evaluate a file that contains Lisp code:
|
|
|
|
|
|
|
|
```text
|
|
|
|
$ echo "(+ 1 2 3)" > mylisp.mad
|
|
|
|
$ vendor/bin/madlisp mylisp.mad
|
|
|
|
6
|
|
|
|
```
|
|
|
|
|
2020-12-20 02:22:14 +00:00
|
|
|
## Documentation
|
2020-06-12 09:42:00 +00:00
|
|
|
|
2020-12-20 02:22:14 +00:00
|
|
|
The full [documentation](http://madlisp.com/) is available on the project website.
|
2020-06-12 09:42:00 +00:00
|
|
|
|
2020-06-11 10:13:00 +00:00
|
|
|
## License
|
|
|
|
|
2020-12-20 03:01:42 +00:00
|
|
|
[MIT](https://bitbucket.org/maddy83/madlisp/src/master/LICENSE)
|