diff options
author | Adam <adam@adambard.com> | 2016-10-21 15:35:09 -0700 |
---|---|---|
committer | Adam <adam@adambard.com> | 2016-10-21 15:35:09 -0700 |
commit | 620e5d20402be961d27ce6cc6a007204c81391d4 (patch) | |
tree | e33427b1aa82c11a8e974ccd8a02b789de4c9737 /fr-fr/clojure-fr.html.markdown | |
parent | de376b4357e79fc847e4c1ae2717946fe05d3bef (diff) | |
parent | 0659107a78bddd722df816daa01ee622fb4508d1 (diff) |
Merge branch 'master' of github.com:adambard/learnxinyminutes-docs
Diffstat (limited to 'fr-fr/clojure-fr.html.markdown')
-rw-r--r-- | fr-fr/clojure-fr.html.markdown | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/fr-fr/clojure-fr.html.markdown b/fr-fr/clojure-fr.html.markdown index 63bc25b5..65747c0d 100644 --- a/fr-fr/clojure-fr.html.markdown +++ b/fr-fr/clojure-fr.html.markdown @@ -275,7 +275,7 @@ ressemblent à toutes les autres formes: (let [name "Urkel"] (print "Saying hello to " name) (str "Hello " name)) ; => "Hello Urkel" (prints "Saying hello to Urkel") - + ; Utilisez les Threading Macros (-> et ->>) pour exprimer plus ; clairement vos transformations, en y pensant de manière multi-niveaux. @@ -284,10 +284,10 @@ ressemblent à toutes les autres formes: ; de la forme suivante, constituant à chaque fois un nouvel étage ; de transformation. Par exemple: (-> - {:a 1 :b 2} + {:a 1 :b 2} (assoc :c 3) ;=> Génère ici (assoc {:a 1 :b 2} :c 3) (dissoc :b)) ;=> Génère ici (dissoc (assoc {:a 1 :b 2} :c 3) :b) - + ; Cette expression est ré-écrite en: ; (dissoc (assoc {:a 1 :b 2} :c 3) :b) ; et est évaluée en : {:a 1 :c 3} @@ -302,6 +302,14 @@ ressemblent à toutes les autres formes: (into [])) ;=> Génère ici (into [] (filter odd? (map inc (range 10))), ce qui est évalué au final à; ; [1 3 5 7 9] +; Quand vous êtes dans une situation où vous voulez plus de liberté pour choisir +; où mettre le résultat des étages précédents, vous pouvez utiliser la +; macro as->. Avec cette macro, donnez un nom spécifique au résultat de la transformation +; précédente pour le placer, à votre guise, où bon vous semble dans l'étage courant: +(as-> [1 2 3] input + (map inc input);=> Utilisation du résultat en dernière position + (nth input 4) ;=> et en deuxième position, dans la même expression + (conj [4 5 6] input [8 9 10])) ;=> ou au milieu ! ; Modules ;;;;;;;;;;;;;;; @@ -370,7 +378,7 @@ ressemblent à toutes les autres formes: ; STM ;;;;;;;;;;;;;;;;; -; La mémoire logiciel transactionnelle ("Software Transactional Memory") +; La mémoire logiciel transactionnelle ("Software Transactional Memory") ; est le mécanisme que Clojure utilise pour gérer les états persistents. ; Il y a plusieurs formes en Clojure qui utilisent cela. @@ -384,7 +392,7 @@ ressemblent à toutes les autres formes: (swap! my-atom assoc :a 1) ; Définit my-atom comme le résultat de (assoc {} :a 1) (swap! my-atom assoc :b 2) ; Définit my-atom comme le résultat de (assoc {:a 1} :b 2) -; Use '@' to dereference the atom and get the value +; Use '@' to dereference the atom and get the value my-atom ;=> Atom<#...> (Renvoie l'objet Atom) @my-atom ; => {:a 1 :b 2} |