Introduction à Clojure Jean-Sébastien A. Beaudry
Qu'est-ce que Clojure Langage dynamique Compilé (bytecode Java) Fonctionel en grande partie STM pour le reste Très propice au multithreading Homoiconicité
En détails Qu'est-ce que Clojure? REPL Syntaxe Litéraux (literals) Expression symbolique (s-exp) Fonctions Let Atelier
REPL Read Eval Print Loop tryclj.com Qu'arrive-t-il quand l'opération est “print”?
Litéraux Symbole (nom de variable, fonction, etc...): Des lettres des chiffres et quelques autres caractères comme _ - + ? ! * etc. Chaînes de caractères: “linuq” Nombres: 42, 42.0, 42.0M, 20r22, 22/7 Caractères: \space, \tab, \newline, \a, \b, \c Booléen: true false Rien: nil Mots-clefs: :linuq :a :b :c
Litéraux (suite) Liste: (1 2 3 4 5) Vecteur: [1 2 3 4 5] Table de hachage: {:nom “Linuq” :adresse “...”} Ensemble: #{1 3 4 5}
Expression Symbolique (s-exp) (opérateur opérande1 opérande2 .. opéranden) (+ 10 10 10 2) (sort [5 2 3 1 4]) (println 20r22)
Définition de fonction (defn nom-de-fonction [arg1 arg2] code) (defn au-carre [nombre] (* nombre nombre)) (au-carre 4)
(let [nom valeur] code) (let [x 4 y 5] (+ x y))
Fonction anonymes (au-carre 4) (fn [x] (* x x)) ((fn [x] (* x x)) 4) #(* %1 %1) (#(* %1 %1) 4)
Leagues, I want to join the code golf league... Atelier 4clojure.org clojure.org clojuredocs.org Leagues, I want to join the code golf league...
Références github.com/technomancy/leiningen clojure.org clojuredocs.org alexott.net/en/clojure/video.html tryclj.com 4clojure.org irc.freenode.net #clojure