This is the interpreter for Page, a functional programming langauge based on Lisp. All parts were written from scratch using Go. The interpreter uses a recursive descent approach for parsing.
> (list 1 2 3) // define list.
(list 1 2 3)
> (car (list 1 2 3)) // get first element
1
> (cdr (list 4 5 6)) // get rest
(list 5 6)
> (cons 1 (list 4 5 6)) // construct new list with elements combined
(list 1 4 5 6)
> (length (list 1 2 3))
3
> (define (add a b) (+ a b))
> (add 2 5)
7
> (define (isEven n) (= (% n 2) 0))
> (isEven 5)
False
> (length "hello")
5
> (equals "hello" "world")
False
> "Hello World"
Hello World
> 10
10
> (+ 5 5 )
10
> (% 4 2)
0
> (/ 4 2)
2
> (* 2 2)
4