Skip to content

LISP interpreter implemented in PHP, with strong focus on interoperability.

License

Notifications You must be signed in to change notification settings

Archer70/desmond

Repository files navigation

Desmond Build Status Scrutinizer Code Quality Code Coverage

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.

About

LISP interpreter implemented in PHP, with strong focus on interoperability.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages