A lisp dialect, inspired by Clojure, hosted in Go.
- Interpreted / REPL development/scripting flow
- Transpiles to Go
- Native Go concurrency primitives
- easy Go interop
- Macros
- Transpile to Go
- Golang standard lib interop
- Golang channel type in Smack
- File/IO
- Option/Result types
- Compound Data Structures (struct)
- Traits/Behaviors/Protocols
- Namespaces/Modules
- AST Optimization
- Ref (mutable) types
- Basic Standard Lib (Currently not fully implemented)
(def add (fn (a b) (+ a b)))
(def sub (fn (a b) (- a b)))
(def not (fn (a) if a false true))
(let (x 54 y 46) (add x y))
(def a 100)
(def b 200)
(println (do (
(let (res 5) (>= res 50))
)))
(def table {:a 12 :b "bee"})
(def array [1 2 3])
(println "Ayyye this really something!!!")
- This repo is my solutions for Make a Lisp (MAL). I have added additional features on top of the challenge set.