Pages

Monday, May 8, 2017

mal

"Mal is a Clojure inspired Lisp interpreter.

Mal is implemented in 64 languages:
  • Ada
  • GNU awk
  • Bash shell
  • BASIC (C64 and QBasic)
  • C
  • C++
  • C#
  • ChucK
  • Common Lisp
  • Clojure
  • CoffeeScript
  • Crystal
  • D
  • Dart
  • Elixir
  • Emacs Lisp
  • Erlang
  • ES6 (ECMAScript 6 / ECMAScript 2015)
  • F#
  • Factor
  • Forth
  • Go
  • Groovy
  • GNU Guile
  • Haskell
  • Haxe
  • Io
  • Java
  • JavaScript (Online Demo)
  • Julia
  • Kotlin
  • Logo
  • Lua
  • GNU Make
  • mal itself
  • MATLAB
  • miniMAL
  • Nim
  • Object Pascal
  • Objective C
  • OCaml
  • Perl
  • Perl 6
  • PHP
  • Picolisp
  • PL/pgSQL (Postgres)
  • PL/SQL (Oracle)
  • Postscript
  • PowerShell
  • Python
  • RPython
  • R
  • Racket
  • Ruby
  • Rust
  • Scala
  • Skew
  • Swift
  • Swift 3
  • Tcl
  • TypeScript
  • VHDL
  • Vimscript
  • Visual Basic.NET
Mal is a learning tool. See the make-a-lisp process guide. Each implementation of mal is separated into 11 incremental, self-contained (and testable) steps that demonstrate core concepts of Lisp. The last step is capable of self-hosting (running the mal implementation of mal).
The mal (make a lisp) steps are:
Mal was presented publicly for the first time in a lightning talk at Clojure West 2014 (unfortunately there is no video). See examples/clojurewest2014.mal for the presentation that was given at the conference (yes the presentation is a mal program). At Midwest.io 2015, Joel Martin gave a presentation on Mal titled "Achievement Unlocked: A Better Path to Language Learning". Video, Slides. More recently Joel gave a presentation on "Make Your Own Lisp Interpreter in 10 Incremental Steps" at LambdaConf 2016: Part 1, Part 2, Slides.

If you are interesting in creating a mal implementation (or just interested in using mal for something), please drop by the #mal channel on freenode. In addition to the make-a-lisp process guide there is also a mal/make-a-lisp FAQ where I attempt to answer some common questions."

https://github.com/kanaka/mal

https://github.com/mame/quine-relay

No comments:

Post a Comment