 
 Une façon de penser *let* formes, ce est qu'ils fournissent des paramètres et leurs arguments secondaires à côte. *let* formes ont deux utilisations principales:
 
-*Ils fournissent la clarté en vous permettant de nommer les choses
-*Ils vous permettent d'évaluer une expression qu'une seule fois et ré-utiliser le résultat. Ceci est particulièrement important lorsque vous avez besoin de réutiliser le résultat d'un appel de fonction coûteux, comme un appel d'API de réseau. Il est également important lorsque l'expression a des effets secondaires.
+* Ils fournissent la clarté en vous permettant de nommer les choses
+* Ils vous permettent d'évaluer une expression qu'une seule fois et ré-utiliser le résultat. Ceci est particulièrement important lorsque vous avez besoin de réutiliser le résultat d'un appel de fonction coûteux, comme un appel d'API de réseau. Il est également important lorsque l'expression a des effets secondaires.
 Ayons un autre regard sur  *let* forme dans notre fonction de symétrisation afin que nous puissions comprendre exactement ce qui se passe:"
 
 

  )


"Certains autres langues vous obligent à utiliser différents opérateurs lorsque l'on compare les valeurs de différents types. Par exemple, vous pourriez avoir à utiliser une sorte de l'opérateur spécial "chaîne de l'égalité" particulièrement fait juste pour les chaînes. Vous ne avez pas besoin de quelque chose bizarre ou pénible comme ça pour tester l'égalité lors de l'utilisation des structures de données intégrées de Clojure."

[[:section {:tags "nombres" :title "Nombres"}]]


"Quand devriez-vous utiliser une liste et quand faut-il utiliser un vecteur? Pour l'instant, vous êtes probablement mieux de simplement en utilisant des vecteurs. Comme vous en apprendre davantage, vous aurez une bonne idée de quand utiliser quel."




(exercice

  "On peut accèder au premier élément..."
  [(= __ (first '(1 2 3 4 5)))]1)


(exercice
  "Ainsi que le reste"
  [(= __ (rest '(1 2 3 4 5)))][2 3 4 5])


(exercice
  "Comptez vos bénédictions"
  [(= __ (count '(dracula dooku chocula)))]3)


(exercice
  "Avant qu'ils ne disparaissent"
  [(= __ (count '()))]0)


(exercice

  "Le reste, quand rien n'est laissé, est vide"
  [(= __ (rest '(100)))]())


(exercice

  "Construction en ajoutant un élément à l'avant est facile"
  [(= __ (cons :a '(:b :c :d :e)))][:a :b :c :d :e])


(exercice

  "Conjoindre un élément à une liste ne est pas difficile non plus"
  [(= __ (conj '(:a :b :c :d) :e))] [:e :a :b :c :d])


(exercice

  "Vous pouvez utiliser une liste comme une pile pour obtenir le premier élément"
  [(= __ (peek '(:a :b :c :d :e)))]:a)


(exercice

  "Ou les autres"
  [(= __ (pop '(:a :b :c :d :e)))][:b :c :d :e])


(exercice

  "Mais attention si vous essayez de rien pop"
  [(= __ (try
           (pop '())
           (catch IllegalStateException e
             "No dice!")))]"No dice!")


(exercice

  "Le reste de rien n'est pas si stricte"
  (= __ (try
          (rest '())
          (catch IllegalStateException e
            "No dice!"))) ())


[[:section {:tags "sets" :title "Sets"}]]

"Les ensembles sont des collections de valeurs uniques:"
