Section courante

A propos

Section administrative du site

Autres fonctions et macros utiles

Fonctions booléennes et de comparaison : = == identical? not= not true? false? nil?

Divers : identity dotimes time assert with-open

Création de fonctions

Fonction Exemple d'expression Valeur de retour
fn (map (fn [x] (+ 2 x)) [1 2 3]) (3 4 5)
#() reader macro (map #(+ 2 %) [1 2 3]) (3 4 5)
partial (map (partial + 2) [1 2 3]) (3 4 5)
comp (map (comp - *) [2 4 6] [1 2 3]) (-2 -8 -18)
complement (map (complement zero?) [3 2 1 0]) (true true true false)
constantly (map (constantly 9) [1 2 3]) (9 9 9)

Affichage

Plusieurs fonctions permettent d'afficher des objets sur le flux de sortie courant de `*out*`. Les versions `-str` associent `*out*` à un objet `StringWriter`, y impriment les données et renvoient la chaîne résultante. `pr` imprime le ou les objets, séparés par des espaces s'il y en a plusieurs. `prn` fait de même et ajoute un saut de ligne. `print` et `println` appellent respectivement `pr` et `prn`, avec l'option `print-readably` (valeur par défaut : `true`) définie sur `nil`. Dans ce cas, les chaînes s'impriment sans guillemets ni encodage de caractères d'échappement, et les caractères sans le caractère d'échappement initial `\` ni encodage de caractères d'échappement. Par défaut, `pr` et `prn` impriment les objets de manière à ce qu'ils soient lisibles par le lecteur, tandis que `print` et `println` produisent un résultat destiné à la lecture humaine. Lorsque `print-readably` est différent de `nil`, l'affichage des métadonnées est activé ou désactivé par `print-meta`, étant défini par défaut sur `nil`.

Fonctions associées

Catégorie Fonctions
Afficher vers *out* pr prn print println newline
Afficher vers une chaîne de caractères pr-str prn-str print-str println-str with-out-str

Prise en charge des expressions régulières

Les expressions régulières peuvent être compilées à la lecture via la macro de lecture `#"pattern"`, ou à l'exécution avec `re-pattern`. Les deux méthodes produisent des objets `java.util.regex.Pattern`.

  1. user=> (re-seq #"[0-9]+" "abs123def345ghi567")
  2. ("123" "345" "567")
  3. user=> (re-find #"([-+]?[0-9]+)/([0-9]+)" "22/7")
  4. ["22/7" "22" "7"]
  5. user=> (let [[a b c] (re-matches #"([-+]?[0-9]+)/([0-9]+)" "22/7")]
  6.          [a b c])
  7. ["22/7" "22" "7"]
  8. user=> (re-seq #"(?i)[fq].." "foo bar BAZ QUX quux")
  9. ("foo" "QUX" "quu")

Fonctions associées

re-matcher re-find re-matches re-groups re-seq



Dernière mise à jour : Lundi, le 2 février 2026