LISP dialect implemented in Go
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmarks
extensions Support closures, also ran go fmt on things Dec 28, 2015
interpreter calling macro func in a new env for macro expanding Jan 28, 2016
tests
.gitignore ignore profile files Jun 8, 2014
LICENSE
README.md
main.go

README.md

GLisp

This is a LISP dialect designed as an embedded extension language for the Go programming language. It is implemented in pure Go, so it can be easily ported to all systems and architectures that Go targets.

Here is a list of what features are implemented and not implemented so far.

  • Float, Int, Char, String, Symbol, List, Array, and Hash datatypes
  • Arithmetic (+, -, *, /, mod)
  • Shift Operators (sll, srl, sra)
  • Bitwise operations (bit-and, bit-or, bit-xor)
  • Comparison operations (<, >, <=, >=, =, and not=)
  • Short-circuit boolean operators (and and or)
  • Conditionals (cond)
  • Lambdas (fn)
  • Bindings (def, defn, and let)
  • A Basic Repl
  • Tail-call optimization
  • Go API
  • Macro System
  • Syntax quoting (backticks)
  • Channel and goroutine support
  • Pre- and Post- function call hooks

The full documentation can be found in the Wiki.