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.core
clojure.core.server
clojure.data
clojure.edn
clojure.erlang.io
clojure.instant
clojure.repl
clojure.main
clojure.pprint
clojure.set
clojure.stacktrace
clojure.string
clojure.template
clojure.test
clojure.uuid
clojure.walk
clojure.xml
clojure.zip
- Transducers
Not Implemented
- Multi-method
- Hierarchies
- Concurrency
- Ref (no plans for implementation)
- Clojure Libraries
clojure.erlang.erldocs
clojure.erlang.shell
clojure.core.reducers
clojure.spec
Unsupported
- Special Forms
proxy
- Concurrency
- Volatile
- Data Structures
- Transient collections
- StructMaps (see why here)
- Math
- unchecked