/glisp

LISP dialect implemented in Go

Primary LanguageGoBSD 2-Clause "Simplified" LicenseBSD-2-Clause

GLisp

Image text

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, Bytes, Symbol, List, Array, and Hash datatypes
  • Arithmetic (+, -, *, /, mod)
  • Shift Operators (sla, sra)
  • Big integer
  • Bitwise operations (bit-and, bit-or, bit-xor)
  • Comparison operations (<, >, <=, >=, =, and not=)
  • Short-circuit boolean operators (and and or)
  • Conditionals (cond)
  • A Basic Repl
  • Lambdas (fn)
  • Bindings (def, defn, and let)
  • Tail-call optimization
  • Go API
  • Macro System
  • Syntax quoting (backticks)
  • Channel and goroutine support

The full documentation can be found in the Wiki.