| ;; 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 |