some escaping bullshit |
4 years ago | |
---|---|---|
am | 11 years ago | |
cm | 11 years ago | |
static | 11 years ago | |
templates | 11 years ago | |
README.md | 4 years ago | |
acc.go | 11 years ago | |
args.go | 11 years ago | |
builtin.go | 11 years ago | |
cmp.go | 11 years ago | |
env.go | 11 years ago | |
eval.go | 11 years ago | |
http.go | 11 years ago | |
input.scm | 11 years ago | |
lex.go | 12 years ago | |
skeam.go | 11 years ago | |
special.go | 11 years ago | |
tcp_connections.go | 11 years ago |
README.md
skeam
Skeam is a primitive Lisp interpreter. I wrote this out of a curiosity to learn about the basics of writing interpreters; it's not something that I'd recommend using, but it may be helpful to look at if you're interested in writing your own. The name comes from Scheme and Skream.
Skeam does not implement tail-call elimination or continuations, so it's not technically a Scheme implementation.
The input.scm
file gives an example of what is currently understood by the interpreter.
installing skeam
First make sure you have Go1, the current version of the Go programming language. If you don't have it, you can download it here.
Skeam is go-gettable, so installation only requires the following command: go get github.com/jordanorelli/skeam
. Make sure your $GOBIN
is included in
your environment's $PATH
. E.g., on Mac OS X, this generally means adding
export PATH=$PATH:/usr/local/go/bin
to your .bashrc
.
Once installed, you can access the Skeam REPL by simply running the command
skeam
. To execute a Skeam file, pass the filename as a parameter to the
skeam
command. E.g., skeam input.scm
would run the input.scm
file.