malgo is a work-in-progress implementation of mal Lisp interpreter in Go.
I'm using this as a learning tool to:
- better understand the components of Lisp (and programming languages in general)
- practice writing Go 🙂
I've been loosely following the process guide by the original author. The mal repo contains over 80 implementations, including one in Go, but I intend on not looking at it until my implementation is more fleshed-out. Looking forward to compare and contrast them at a later point.
go get github.com/poly2d/malgo
cd $GOPATH/src/github.com/poly2d/malgo && go run mal.go
def! do fn* if let*
- Arithmetic:
+ - * /
- Comparators:
= < <= > >=
- List:
list list? empty? count
- Print:
prn
- Continue guide (steps 5+ and deferrables)
- Possibly refer to test cases from original mal