Skip to content

Latest commit

 

History

History
296 lines (249 loc) · 35.7 KB

README.md

File metadata and controls

296 lines (249 loc) · 35.7 KB

Emacs Logo Awesome Markdown GitHub license Sponsor

Awesome LISP Family

A list of lisp-flavored programming languages implemented on top of existing programming languages.

Classification

  • Type-A: Simple syntax mapping
    These languages usually just provide s-expressions (parentheses) syntax and are translated to the target language without extra features/semantics. Also sometimes being called transpilers.

  • Type-B: Syntax and additional semantics
    In addition to translating the syntax some additional features/semantics that are not present in the target language are added. Usually if a language does not fit in other category, it can be considered being a Type-B.

  • Type-C: Clojure-like
    Distintive syntax that besides parentheses also uses brackets and curly braces. Distinctive features are persistent data structures, namespaces and vars, protocols.

  • Type-L: Common Lisp
    Implementing ANSI Common Lisp standard or being inspired by it.

  • Type-S: Scheme
    Implementing some of RxRS standards or being inspired by Scheme.

Languages

Listed primarily by the language which can be used for interoperability / FFI.

Language section does not necessarily mean the language of the implementation. For example Ferret compiles into C++ but the compiler is written in Clojure. Or Carp interops with C but it is mostly written in Haskell. In case of SBCL it contains only small amounts of C, but it is implemented almost entirely in Common Lisp.

Multi Lang

Name Active Type Target
Lux last-commit B
Mal last-commit *1
STELLA ?
Wax last-commit *
Shen last-commit B
Zick Standard Lisp last-commit ?

Cobol

Name Active Type Target
Cisp last-commit L

Common Lisp

Name Active Type Target
SBCL last-commit L
Clasp last-commit L
ECL last-commit L
CLISP last-commit L
Clozure CL last-commit L
Coalton last-commit L

See list of additional implementations.

Scheme

Name Active Type Target
Racket last-commit S
STklos last-commit S
Bigloo last-commit S native
Gerbil last-commit S
Gauche last-commit S
Chibi-Scheme last-commit S
Gambit last-commit S
Guile last-commit S
Loko Scheme last-commit S
Cisco Chez last-commit S
Racket Chez last-commit S
Rabbit last-commit S
CHICKEN Scheme last-commit S
Cyclone last-commit S
Microscheme last-commit S
Vicare last-commit S
Ikarus last-commit S

See list of additional implementations and benchmarks.

The Development of Chez Scheme

C/C++

Name Active Type Target
Janet last-commit B
Cakelisp last-commit A
Dale last-commit B
Owl Lisp last-commit S
jo_clojure last-commit C
Extempore last-commit S
Maru last-commit B
Liz last-commit A
Toccata last-commit C
Lcc last-commit A
PicoLisp last-commit B
Ferret last-commit C
C-Mera last-commit A
FemtoLisp last-commit S

C#

Name Active Type Target
Clojure-CLR last-commit C
IronScheme last-commit S
Arcadia last-commit C

Elm

Name Active Type Target
Enclojure last-commit C

Erlang

Name Active Type Target
Lisp Flavored Erlang last-commit A2
Joxa last-commit A1
Clojerl last-commit C
Kapok last-commit C
scm last-commit S

Fortran

Name Active Type Target
fscheme S
Schemetran last-commit A

Go

Name Active Type Target
Joker last-commit C
Slick last-commit L
Zygo last-commit B
ZYLISP last-commit A

Haskell

Name Active Type Target
Carp last-commit B

Java

Name Active Type Target
ABCL last-commit L
Clojure last-commit C
Kawa last-commit S
Armed Bear Clojure last-commit C+L
PicoLisp last-commit B

JavaScript

Name Active Type Target
BiwaScheme last-commit S
ClojureScript last-commit C
JACL L
LIPS last-commit S
RacketScript last-commit S
Valtan last-commit L
Lumen last-commit A
JSLisp last-commit L
eslisp last-commit A
Parenscript last-commit L
Wisp last-commit C
Whalesong last-commit S

Julia

Name Active Type Target
LispSyntax.jl last-commit A

Lua

Name Active Type Target
Fennel last-commit A
Lumen last-commit A
Urn last-commit ?

Objective-C

Name Active Type Target
nu last-commit ?
DreamLisp last-commit B

OCaml

Name Active Type Target
Reason-Lisp last-commit A

Perl

Name Active Type Target
Bel last-commit ?

PHP

Name Active Type Target
Phel last-commit C

Python

Name Active Type Target
Hy last-commit A1+C*
Hissp last-commit A
Pixie last-commit B

R

Name Active Type Target
llr last-commit C

Rust

Name Active Type Target
GameLisp last-commit B
ClojureRS last-commit C
BLisp last-commit B
Ketos last-commit B
Rustly last-commit C

Shell

Name Active Type Target
Fleck last-commit A
Gherkin last-commit B

VHDL

Name Active Type Target
VhdlLisp last-commit ?

WASM

Name Active Type Target
Liz last-commit A
Schism last-commit S
WASM Scheme last-commit S
clj-wasm last-commit A
Arboreta WASM last-commit ?

Misc

Contribute

Anything incorrect? Is there an interested project that is missing? Open an issue or PR to request adding a project to the list.