eunmin / kand

A statically typed lisp for JVM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kand

This is experimental project. Don't use it for product. :)

Usage

You can run repl with Leiningen lein run

Kand REPL
To exit type quit
> (def a 10)
#kand.type.Unit{}
> (def b 2000)
#kand.type.Unit{}
> (core/+ a b)
#kand.type.Num{:val 2010}
> (def add (fn (x y) (core/+ x y)))
#kand.type.Unit{}
> (add a b)
#kand.type.Num{:val 2010}
> (if (core/> 1 2) 1 2)
#kand.type.Num{:val 2}
> (if (core/= 1 1) 1 2)                             
#kand.type.Num{:val 1}
> (if (core/= 1 2) 1 2)
#kand.type.Num{:val 2}
> (core/. (quote nextInt) (core/new (quote java.util.Random)))
#kand.type.Obj{:obj -1034235661}
> :quit
Bye See you soon!

Build

lein ubarjar

java -jar target/kand-0.1.0-SNAPSHOT-standalone.jar

References

JVM Languages

Statically typed lisp implementations

Lisp implementations

Libraries

Tools

Books

Articles

Friend Projects

Type Inference

About

A statically typed lisp for JVM


Languages

Language:Clojure 43.4%Language:Haskell 38.6%Language:Java 18.1%