Schemes are often spoken synonymously as Lisps.
Common Lisp Implementations:
- CLISP: a high-level, general-purpose, object-oriented, dynamic, functional programming language.
- C: GCL: the official Common Lisp for the GNU project.
- C: Embeddable Common Lisp (Source): Full Common Lisp implementation, available as a shared library
libecl.so
embeddable in any C, C++ or other application.
- C: Guile: "Guile mostly implements R6RS."
- C: s7: Implements a subset of R5RS/R7RS. Descended from TinyScheme.
- C: TinyScheme: Implements a subset of R5RS.
- C++: Clasp: Full Common Lisp implementation well integrated with C++, using LLVM for the code generation, to integrate closely with C++ applications or libraries.
- JVM: Armed Bear Common Lisp or here
- JVM: Kawa: R7RS. Supports the javax.script API.
- Native: Steel Bank Common Lisp (Source)
- Clozure CL: "Clozure CL is available for download from ccl.clozure.com" (Self-hosted compiler, so requires a copy of both the source and bootstrap compilers, which are all available on Github: "For the latest released version of CCL, please see https://github.com/Clozure/ccl/releases/latest and download the archive for your platform. These archives contain not only the necessary binaries, but also a full clone of the source code. So, to install a complete CCL, all you have to do is download one archive and extract it.")
- Rust: Ketos: A functional Lisp.
- Allegro Common Lisp: Commercial implementation with a free (evaluational, not-timeboxed) download.
- LispWorks: Personal Edition
"A Lisp":
Standalone Lisp environment: Lisp in a Box!: "Lispbox is an IDE for Common Lisp development. Actually, Lispbox is just a pre-configured packaging of the Emacs editing environment, SLIME (The Superior Lisp Interaction Mode for Emacs), the Quicklisp library manager, and the Clozure Common Lisp compiler."
Lisp-inspired:
- ArkScript: A small functional Lisp-like programming language. Separate bytecode compiler and VM.
- Arc: Paul Graham vaporware
- Carp: a statically typed lisp, without a GC, for real-time applications.
- CLiPs: an expert system rule engine using a Lisp as the language for facts and rules
- Io: A prototype-based OO language.
- Janet
- JESS: Java Expert System Shell, a CLIPS-inspired expert system rule engine on the JVM
- Lux: A functional, statically-typed Lisp that will run on several platforms, such as the Java Virtual Machine and JavaScript interpreters.
Reading
- John McCarthy's Home Page
- Land of Lisp
- The Lisp Curse: An attempt to reconcile the power of the Lisp language with the inability of the Lisp community to repduce their pre-AI Winter achievements; the explanation is that the power of Lisp is actually its curse, that those who can hack anything in Lisp often do, but only to the point where it is useful to themselves, and never take that final step to produce something generally useful.
- Practical Common Lisp (book)
- "C++ and Lisp": "This article investigates these [C++ and Lisp] different approaches in a variety of areas, with two intents. Firstly, I find that it is always illuminating to see concepts from an alternative viewpoint, to be reminded that things can be done differently when a different set of constraints apply. Neither is right or wrong, just appropriate in different circumstances."
- "Embedding Lisp in C++"
- Language repos for "Artificial Intelligence: A Modern Approach", by Norvig (Java, Lisp, Python, JavaScript, pseudocode)
- Chris Kohlepp's Blog: Interesting sections. "Advanced C++ and Lisp", "Embeddable Common Lisp on iPhone", "Reasoning Systems", and so on.
- "How to Write a Lisp Interpreter in JavaScript"
Libraries(ish)
- Foil: a Foreign Object Interface for Lisp (JVM and CLR integration)
FFI
- Clasp — Bringing Common Lisp and C++ Together
Deployment
Running Lisp in production
Tags:
jvm
clr
native
language
functional
dynamic
object
metaobject
Last modified 12 July 2023