La grammaire des fonctions
L'affirmation fondatrice de la bibliothèque est que le nom d'une fonction est une phrase, avec des formes qui disent ce qui arrive, comment, à quoi et dans quel ordre. Voici chaque forme, essayée dans la bibliothèque avec l'exemple que donne son propre article, et ce qui en est sorti.
L'affirmation est ancienne et c'est la première page des écrits de la bibliothèque : des fonctions comme expressions de la langue, un langage embarqué dans chaque nom, obtenu sans modèle d'IA, en nommant systématiquement, en ordonnant les paramètres, en variant les formes et en inférant les valeurs par défaut. L'article nomme les formes. Cette page fait ce que demande la loi du site et essaie chacune.
Sur 22 essais, 11 ont tenu leur promesse, 8 ont levé une erreur, dont 7 pour un nom que la bibliothèque n'a pas, et 3 ont affiché autre chose que la promesse.
Active
un verbe qui agit sur l'objet, comme un impératif : RemoveAll("x")
o1 = new stzString("TExxAxS")
o1.RemoveAll("x")
? o1.Content()TEAS
a tenu sa promesse · promis : TEAS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Passive
le participe passé, l'état voulu : Removed("x"), et l'original est laissé tel quel
o1 = new stzString("TExxAxS")
? o1.Removed("x")
? o1.Content()TEAS TExxAxS
a tenu sa promesse · promis : TEAS / TExxAxS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
o1 = new stzString("TExxAxS")
? o1.AllRemoved("x")Error (R14) : Calling Method without definition: allremoved
n'existe pas : la bibliothèque répond · promis : TEAS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Fluide
chaque verbe rend l'objet, si bien que la phrase continue : RemoveQ, ReplaceQ
? Q("texxaxs").
RemoveQ("x").
ReplaceQ("e", :With = AHeart()).
UppercaseQ().
Spacified()T ♥ A S
a tenu sa promesse · promis : T ♥ A S · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Immuable
QC enchaîne sur une copie et l'original reste tel qu'il était
o1 = new stzString("texxaxs")
? o1.RemoveQC("x").
ReplaceQ("e", :With = AHeart()).
UppercaseQ().
Spacified()
? o1.Content()T ♥ A S texxaxs
a tenu sa promesse · promis : T ♥ A S / texxaxs · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Partielle
un verbe en @ agit sur la partie que la chaîne a prise : @("x").@Removed()
o1 = new stzString("TExxAxS")
? o1.@("x").@Removed()Error (R14) : Calling Method without definition: @removed
n'existe pas : la bibliothèque répond · promis : TEAS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Plurielle
Many prend une liste et le verbe est fait pour chacun : RemoveMany
o1 = new stzString("__T~~~EA***S__")
o1.RemoveMany([ "_", "~", "*" ])
? o1.Content()TEAS
a tenu sa promesse · promis : TEAS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
o1 = new stzString("__T~~~EA***S__")
? @@( o1.FindManyZZ([ "__", "~~~", "***" ]) )[ [ "__", [ [ 1, 2 ], [ 13, 14 ] ] ], [ "~~~", [ [ 4, 6 ] ] ], [ "***", [ [ 9, 11 ] ] ] ]
a affiché autre chose que la promesse · promis : [ [ 1, 2 ], [ 4, 6 ], [ 9, 11 ], [ 13, 14 ] ] · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
d'Exception
Except dit ce qu'il faut épargner : RemoveNonLettersExcept("_")
o1 = new stzString("__T~~~EA***S__")
o1.RemoveNonLetters()
? o1.Content()Error (R14) : Calling Method without definition: removenonletters
n'existe pas : la bibliothèque répond · promis : TEAS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
o1 = new stzString("__T~~~EA***S__")
o1.RemoveNonLettersExcept("_")
? o1.Content()Error (R14) : Calling Method without definition: removenonlettersexcept
n'existe pas : la bibliothèque répond · promis : __TEAS__ · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Négative
la négation est un mot du nom : IsNotLetter, IsNotALetter
? Q("*").IsNotLetter()1
a tenu sa promesse · promis : 1 · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
? Q("*").IsNotALetter()Error (R14) : Calling Method without definition: isnotaletter
n'existe pas : la bibliothèque répond · promis : 1 · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Alternative
plus d'un nom pour la façon dont une personne le dit, et les mots d'un nom peuvent s'intervertir
o1 = new stzList([ "C", "B", "A" ]) o1.SwapItems(1, 3) ? @@( o1.Content() )
[ "A", "B", "C" ]
a tenu sa promesse · promis : [ "A", "B", "C" ] · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
o2 = new stzList([ 1, 2, "♥", 4, 5, "♥", "♥" ]) ? o2.FindNthNext(2, "♥") ? o2.FindNextNth(2, "♥")
Error (R19) : Calling function with less number of parameters
a levé une erreur : la bibliothèque répond · promis : 6 / 6 · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Paramètres nommés
l'argument dit ce qu'il est : :With, :StartingAt
? Q("tea, rice, tea").Replaced("tea", :With = "coffee")coffee, rice, coffee
a tenu sa promesse · promis : coffee, rice, coffee · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Conditionnelle
W, une condition dans l'argument
o = new stzList([ 4, 7, 10, 3, 8 ])
? @@( o.FindW("{ @item > 5 }") )[ 2, 3, 5 ]
a tenu sa promesse · promis : [ 2, 3, 5 ] · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Préfixes
viz montre la réponse du verbe sur la chaîne
? Q("RINGORIALAND").FindAll("I")2 7
a tenu sa promesse · promis : [ 2, 7 ] · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
? Q("RINGORIALAND").vizFindAll("I")Error (R14) : Calling Method without definition: vizfindall
n'existe pas : la bibliothèque répond · promis : RINGORIALAND / -^----^----- · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Suffixes
CS, ST, Z, ZZ : le nom dit quels arguments, dans quel ordre
o1 = new stzString("123456789TEA")
? o1.FindNextSTCS("tea", 5, FALSE)10
a tenu sa promesse · promis : 10 · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
str = new stzString("SOOooooFFfffTANNnnnZA")
str.RemoveManyCS([ "o", "f", "n" ], FALSE)
? str.Content()STAZA
a affiché autre chose que la promesse · promis : SOFTANZA · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Petites fonctions
Q élève, @@ lit, Qh garde l'historique d'une chaîne
? @@( Qh(12500). AddQ(500). RetrieveQ(1500). DivideByQ(500). MultiplyByQ(2). History() )
[ 12500, 13000, 11500, 23, 46 ]
a affiché autre chose que la promesse · promis : [ 13000, 11500, 23, 46 ] · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Future
F diffère une action, FF exécute tout ce qui était différé avant elle
? BeforeQ('').UppercasingFQ("teaso").
RemoveFFQ("o").FromItQ().
SpacifyItQ().
AndThenQ().ReturnIt()Error (R3) : Calling Function without definition: beforeq
n'existe pas : la bibliothèque répond · promis : T E A S · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0
Ce qui n'a pas été essayé
D'autres formes sont nommées dans l'article et pas essayées ici : la forme aléatoire, la forme profonde, les formes par défaut et à ordre libre, les formes de nom mal écrit et d'énoncé, et la forme libre, dont le nom entre en collision avec un autre suffixe dans le code. La forme multilingue, une fonction nommée en arabe, en français ou en chinois, n'existe que dans l'archive de la bibliothèque et nulle part en vivant.
en construction L'article documente plus que la bibliothèque n'a. Sept des exemples ci-dessus demandent un nom que la bibliothèque ne définit pas, et trois promettent une réponse que la bibliothèque ne donne pas : les sections d'une recherche plurielle, l'historique d'une chaîne, et ce que laisse une suppression insensible à la casse. Ils sont signalés à la bibliothèque, qui a le choix entre écrire les formes manquantes et corriger l'article. Les formes qui tournent sont celles que le reste de ce site emploie, et un lecteur qui connaît un verbe en connaît encore la famille : comment Softanza s'écrit dit lesquelles.
Source : l'article les fonctions comme expressions de la langue, dont la page dit lesquels de ses blocs ont tenu leur promesse.

