archer70/desmond

A LISP interpreter for PHP, with interop and awareness of its host environment.

0.3.6 2017-10-20 00:19 UTC

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.