Softanza
DémarrerEnglish
Softanza
Un nom est une phrase, mis à l'épreuve

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")

Softanza
o1 = new stzString("TExxAxS")
o1.RemoveAll("x")
? o1.Content()
Sortie
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

Softanza
o1 = new stzString("TExxAxS")
? o1.Removed("x")
? o1.Content()
Sortie
TEAS
TExxAxS

a tenu sa promesse · promis : TEAS / TExxAxS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0

Softanza
o1 = new stzString("TExxAxS")
? o1.AllRemoved("x")
La bibliothèque répond
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

Softanza
? Q("texxaxs").
	RemoveQ("x").
	ReplaceQ("e", :With = AHeart()).
	UppercaseQ().
	Spacified()
Sortie
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

Softanza
o1 = new stzString("texxaxs")
? o1.RemoveQC("x").
	ReplaceQ("e", :With = AHeart()).
	UppercaseQ().
	Spacified()
? o1.Content()
Sortie
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()

Softanza
o1 = new stzString("TExxAxS")
? o1.@("x").@Removed()
La bibliothèque répond
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

Softanza
o1 = new stzString("__T~~~EA***S__")
o1.RemoveMany([ "_", "~", "*" ])
? o1.Content()
Sortie
TEAS

a tenu sa promesse · promis : TEAS · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0

Softanza
o1 = new stzString("__T~~~EA***S__")
? @@( o1.FindManyZZ([ "__", "~~~", "***" ]) )
Sortie
[ [ "__", [ [ 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("_")

Softanza
o1 = new stzString("__T~~~EA***S__")
o1.RemoveNonLetters()
? o1.Content()
La bibliothèque répond
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

Softanza
o1 = new stzString("__T~~~EA***S__")
o1.RemoveNonLettersExcept("_")
? o1.Content()
La bibliothèque répond
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

Softanza
? Q("*").IsNotLetter()
Sortie
1

a tenu sa promesse · promis : 1 · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0

Softanza
? Q("*").IsNotALetter()
La bibliothèque répond
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

Softanza
o1 = new stzList([ "C", "B", "A" ])
o1.SwapItems(1, 3)
? @@( o1.Content() )
Sortie
[ "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

Softanza
o2 = new stzList([ 1, 2, "♥", 4, 5, "♥", "♥" ])
? o2.FindNthNext(2, "♥")
? o2.FindNextNth(2, "♥")
La bibliothèque répond
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

Softanza
? Q("tea, rice, tea").Replaced("tea", :With = "coffee")
Sortie
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

Softanza
o = new stzList([ 4, 7, 10, 3, 8 ])
? @@( o.FindW("{ @item > 5 }") )
Sortie
[ 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

Softanza
? Q("RINGORIALAND").FindAll("I")
Sortie
2
7

a tenu sa promesse · promis : [ 2, 7 ] · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0

Softanza
? Q("RINGORIALAND").vizFindAll("I")
La bibliothèque répond
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

Softanza
o1 = new stzString("123456789TEA")
? o1.FindNextSTCS("tea", 5, FALSE)
Sortie
10

a tenu sa promesse · promis : 10 · exécuté le 2026-10-09 04:27 dans la bibliothèque au commit 4a184e6f0

Softanza
str = new stzString("SOOooooFFfffTANNnnnZA")
str.RemoveManyCS([ "o", "f", "n" ], FALSE)
? str.Content()
Sortie
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

Softanza
? @@( Qh(12500).
	AddQ(500).
	RetrieveQ(1500).
	DivideByQ(500).
	MultiplyByQ(2).
	History() )
Sortie
[ 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

Softanza
? BeforeQ('').UppercasingFQ("teaso").
	RemoveFFQ("o").FromItQ().
	SpacifyItQ().
	AndThenQ().ReturnIt()
La bibliothèque répond
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.