Lispsyntax.jl

lisp-like syntax for julia


Project maintained by swadey Hosted on GitHub Pages — Theme by mattgraham

LispSyntax.jl: A clojure-like lisp syntax for julia

Join the chat at https://gitter.im/swadey/LispSyntax.jl Build Status

This package provides a julia-to-lisp syntax translator with convenience macros that let you do this:

lisp"(defn fib [a] (if (< a 2) a (+ (fib (- a 1)) (fib (- a 2)))))" 
@test lisp"(fib 30)" == 832040 
@test fib(30)        == 832040 

LispSyntax.jl is implemented as an expression translator between lisp/clojure-like syntax and julia's AST. Julia's compiler, JIT and multiple-dispatch infrastructure is used for code generation and execution. Because of this, LispSyntax.jl is not really clojure or lisp in most meaningful ways. The semantics are entirely julia-based (which are very similar to scheme/lisp in many ways). The net result is that LispSyntax.jl is really an alternative S-expression-like syntax for julia, not an implemention of clojure or lisp.

Special Forms

Notable Differences

TODO