I have been fascinated a long time by lisps such as clojure so I decided to make my own lisp. This lisp is called Atticus Lisp, and is designed to be a simple lisp. This language is not done yet, and it is still in development.
The syntax of Atticus Lisp is designed to be very simple
Addition in Atticus Lisp
(+ a b
(compile "(a,b)=> a+b"))
(succ a (+ a 1))
(main (succ 1))
Note that the "main" function is called.
Fibonnaci in Atticus Lisp
(= x y (compile "(x,y)=>Number(x===y)"))
(+ a b (compile "(a,b)=>a+b"))
(- p q (compile "(p,q)=>p-q"))
(if c y n (compile "(c,y,n)=> c ? y : n"))
(fib n
(if
(= n 1) 1
(+
(fib
(- n 2))
(fib
(- n 1)))))
(main (fib 10))
- expand the standard library
- fix lazy evaluation to avoid infinite loops
- add symbols so I can implement booleans so I can implement lazy if
To run the test suite, do
yarn run test
To run the compiler, do
yarn run run