Map | {:key1 :val1, :key2 :val2} |
Vectors | [1 2 3 4 :a :b :c 1 2] |
Sets | #{:a :b :c 1 2 3} |
Scalars | a-symbol, :a-keyword, "a string" |
Arrays | (array 1 2 3) |
Calling | (<function> <args*>) |
Defining named functions | (defn <name> [<args*>] |constraints| <actions*>) |
Anonymous function | (fn |name| [<args*>] |constraints| <actions*>) |
Anonymous inline function | #(<action> |%,%2,%3, or %&|) |
Conditionals | if if-let cond condp and or when when-let |
Nesting, chaining, and Interop | -> ->> doto .. . |
Defining things | def defn fn let binding defmulti defmethod deftype defrecord reify this-as |
Math | + - * / quot rem mod inc dec max min |
Comparison | = == not= < > <= >= |
Predicates | nil? identical? zero? pos? neg? even? odd? true? false? |
Data processing | map reduce filter partition split-at split-with |
Data create | vector vec hash-map set for list list* |
Data inspection | first rest get get-in keys vals count get nth contains? find |
Data manipulation | seq into conj cons assoc assoc-in dissoc zipmap merge merge-with select-keys update-in |
Arrays | first rest get get-in keys vals count get nth contains? find |
Method call | (.the-method target-object args...) |
Property access | (.-property target-object -property) |
Property setting | (set! (.-title js/document) "Hi!") |
Direct JavaScript | (js/alert "Hello Cleveland!") |
External library use | (.text (js/jQuery "#title") "ClojureScript Rocks!") |