lisp in go

KDr2 e484114abe calling macro func in a new env for macro expanding 8 年之前
benchmarks 2d38bb561a Add a basic benchmark in GLISP and Guile for comparison 10 年之前
extensions 0b30e6710d Support closures, also ran go fmt on things 9 年之前
interpreter e484114abe calling macro func in a new env for macro expanding 8 年之前
tests e484114abe calling macro func in a new env for macro expanding 8 年之前
.gitignore 1ce89607f7 ignore profile files 10 年之前
LICENSE b2057166be add BSD license 10 年之前
README.md 7110199b2f add more features to checklist 10 年之前
main.go e46b991b75 Add basic regexp support in glispext 10 年之前

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.