poly2d / malgo

Make-a-Lisp in Go (WIP)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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)

License:Other


Languages

Language:Go 99.4%Language:Makefile 0.6%