elps icon indicating copy to clipboard operation
elps copied to clipboard

An embedded lisp interpreter

ELPS (Ellipse)

An embedded lisp system for Go programs.

https://pkg.go.dev/github.com/luthersystems/elps

Build

go get -d ./...
make

Try it out

An example WASM build is available on github pages (source).

Usage

Launch an interactive REPL

$ elps repl
> (+ 3 1)
4
>^D
done
$

Run a program in a file

$ elps run prog.lisp

Embedded execution in a Go program

env := lisp.NewEnv(nil)
env.Reader = parser.NewReader()
lerr := lisp.InitializeUserEnv(env)
if !lerr.IsNil() {
   log.Panicf("initialization error: %v", lerr)
}
lerr = lisplib.LoadLibrary(env)
if !lerr.IsNil() {
    log.Panicf("stdlib error: %v", lerr)
}
env.LoadString(`(debug-print "hello-world")`)

Reference

See the docs/ directory for more documentation:

  • Language reference
  • Embedding guide

See the _examples/ directory for examples:

  • SICP Examples