Available Features
We provide here a list of the features that are already implemented and available, the ones that are still missing and those that can't or won't be supported.
For a detailed list on the differences between Clojerl and Clojure please check here.
Implemented
- Special Forms
- Clojure:
def,do,fn*,if,quote,let*,letfn*,loop*,recur,case*,throw,try,var,import*,new,deftype*,defprotocol*,extend-type*,.,reify* - Erlang:
receive*,erl-binary*,erl-list*,erl-alias*,erl-on-load*
- Clojure:
- Multi-method
- Reader
- Namespaced maps
- Data Structures
- Clojure
- ChunkedCons
- Cons
- LazySeq
- List
- Map
- Range
- Set
- SortedSet
- SortedMap
- Vector
- Vector.ChunkedSeq
- Erlang
- Map
- List
- Tuple
- Clojure
- Concurrency
- Atom (experimental)
- Agent (experimental)
- Delay (experimental)
- Future
- Promise
- CountDownLatch (experimental)
- Clojure Libraries
clojure.coreclojure.core.serverclojure.dataclojure.ednclojure.erlang.ioclojure.instantclojure.replclojure.mainclojure.pprintclojure.setclojure.stacktraceclojure.stringclojure.templateclojure.testclojure.uuidclojure.walkclojure.xmlclojure.zip
- Transducers
Not Implemented
- Multi-method
- Hierarchies
- Concurrency
- Ref (no plans for implementation)
- Clojure Libraries
clojure.erlang.erldocsclojure.erlang.shellclojure.core.reducersclojure.spec
Unsupported
- Special Forms
proxy
- Concurrency
- Volatile
- Data Structures
- Transient collections
- StructMaps (see why here)
- Math
- unchecked