It's a very basic Lisp - with really nerdy Dune themes.
Clone, lein uberjar, usage below.
If you really want a jar for some reason lemme know.
$ java -jar arraklisp-0.1.0-SNAPSHOT-standalone.jar
<terrible purpose> is the prompt.
Arithmetic wise, it supports +, -, *, /.
<terrible purpose>
(+ 1 2)
=> 3 :: NUMBER
You can define functions using kwisatz.
arrakis is like def - it puts things into the global scope.
<terrible purpose>
(arrakis f (kwisatz { x} (+ 1 x)))
def'd
<terrible purpose>
(f 5)
=> 6 :: NUMBER
You can define let-expressions using muaddib.
(muaddib [ (x 4) (y 3)] (* x y))
=> 12 :: NUMBER
Functions will display terribly non-useful information.
<terrible purpose>
(kwisatz { x} (+ x 1))
=> kwisatz... :: FUNCTION
Make a mistake? Have a great dune quote! (There's only one.)
<terrible purpose>
(arks x 2)
May thy knife chip and shatter!
exit
I haven't figured out instaparse fully yet, so there are some syntax peculiarities.
In function arguments (kwisatz), if you specify more than 0, you must preface them with a space.
In let-exprs (muaddib), if you specify more than 0 pairings, you must preface them with a space.