archer70 / desmond
A LISP interpreter for PHP, with interop and awareness of its host environment.
Requires (Dev)
- phpunit/php-code-coverage: ^5.2
- phpunit/phpunit: ^6.1
This package is auto-updated.
Last update: 2024-11-29 05:20:54 UTC
README
Put some LISP in your PHP.
Goals
The basic idea here is to create small and fast LISP interpreter for PHP that focuses on functional programming, while also allowing interoperation with PHP itself. You should be able to add Desmond on top of an existing PHP code base, allowing lispy goodness that has access to the application it sits on. In other words, you could write a Wordpress mod in Desmond.
Features
- Functional
- Immutable data types
- PHP interop
- PHP app integration
- Geared for the web
- Built in help text
Installation
Globally with composer:
composer global require archer70/desmond
or per-project:
composer require archer70/desmond
Development
Clone the repo
git clone https://github.com/Archer70/desmond.git
Install development dependencies (PHPUnit) and create autoloader.
composer install
Run the tests
vendor/bin/phpunit -c phpunit.xml test/
You can start a REPL by running bin/desmond
, or run a file with bin/desmond file.dsmnd
.
Help / Docs
For more information, including a quick start guide, see our wiki pages.
For information on specific functions, open a REPL and run (function-list)
and (help "function-name")
.
Also, feel free to drop by #desmond on Freenode if you require additional assistance, or if you're just bored.