Skip to content

poly2d/malgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

malgo 🚧

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.

Run

go get github.com/poly2d/malgo
cd $GOPATH/src/github.com/poly2d/malgo && go run mal.go

Special Forms

def! do fn* if let*

Core Functions

  • Arithmetic: + - * /
  • Comparators: = < <= > >=
  • List: list list? empty? count
  • Print: prn

Todos

  • Continue guide (steps 5+ and deferrables)
  • Possibly refer to test cases from original mal

About

Make-a-Lisp in Go (WIP)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published