|
;; Een keyword genaamd id |
|
:id |
|
|
|
;; Een map met een key :id die correspondeert met een value 5 |
|
;; Alle type data kunnen keys zijn maar het is de norm om keywords te gebruiken |
|
{:id 5} |
|
|
|
|
|
;; Meerdere entries |
|
;; Dit vervangt wat in Java een POJO met attributes id en title geweest was |
|
{:id 5 :title "Dark Souls"} |
|
|
|
;; List: Een lijst met de semantiek van een LinkedList |
|
(1 2 3 4 5) |
|
|
|
;; Vector: Een lijst met de semantiek van een ArrayList |
|
[1 2 3 4 5] |
|
|
|
;; Definieer een variabel m die naar een map met entry [:id 5] verwijst |
|
(def m {:id 5}) |
|
|
|
;; Definieer een function mult met parameters x en y die deze vermenigvuldigd |
|
(defn mult [x y] |
|
(* x y)) |
|
|
|
;; Het eerste element in een lijst wordt verwacht een functie te zijn die dan uitgevoerd wordt. |
|
;; Hier roepen we de function mult aan met parameters 2 en 3 die 6 als resultaat geeft |
|
(mult 2 3) => 6 |
|
|
|
;; Let laat ons toe om binnen een nieuwe scope variables te definiëren |
|
;; Hier definiëren we de variable x als het resultaat van 5 * 6 en geven het resultaat -1 terug |
|
(let [z (mult 5 6)] |
|
(dec z)) => 29 |
|
|
|
;; Een map is ook een function die voor haar keys de corresponderende values geeft |
|
(m :id) => 5 |
|
|
|
;; Een keyword is ook een functuin die zichzelf opzoekt |
|
;; Dit voorbeeld zou niet werken als de key de string “id” was |
|
(:id m) => 5 |