Clojure
Functions
Multi-arity functions
(defn messenger
([] (messenger "Hello world!"))
([msg] (println msg)))anonymous functions
(fn [message] (println message))
;; Equivalent to: (fn [x] (+ 6 x))
#(+ 6 %)
;; Equivalent to: (fn [x y & zs] (println x y zs))
#(println %1 %2 %&)
(apply f '(1 2 3 4)) ;; same as (f 1 2 3 4)Java interoperability
| Instantiation | new Widget("foo") | (Widget. "foo") |
| Instance method | rnd.nextInt() | (.nextInt rnd) |
| Instance field | object.field | (.-field object) |
| Static method | Math.sqrt(25) | (Math/sqrt 25) |
| Static field | Math.PI | Math/PI |
Data Structures
- Lists are akin to linked-lists
- Vectors are C++ vectors