Fonctions d'énumeration
XS offre une série de fonctions permettant de manipuler simplement des collections (variables de type tableau ou dictionnaire). Ces fonctions permettent d'effectuer en une seule ligne des opérations qui nécessiteraient sinon plusieurs lignes de code.
Typiquement, une fonction d'énumération, comme son nom l'indique, énumère les éléments d'une collection, évalue une expression donnée par l'utilisateur et effectue une opération particulière à partir du résultat de l'expression. Cette expression utilisera le mot-clé this pour se référer à l'élément énuméré. (Lorsque la collection est un dictionnaire, le mot-clé thisKey peut également être utilisé pour se référer à la clé énumérée.)
Dans les exemples suivants, les variables a et d sont définies comme suit:
a = {2, 3, 5, 7, 11}
d = ["prénom" = "simon",
"père" = "eric",
"mère" = "denise",
"frère" = "jean",
"amie" = "anne"]
elementsOf:collection satisfying:expression
Retourne les éléments de collection pour lesquels expression retourne vrai.
Exemples
>> elementsOf:a satisfying:this > 4
{
5
7
11
}
>> elementsOf:d satisfying:this ~ "*n"
[
frère =
jean
prénom =
simon
]
>> elementsOf:d satisfying:thisKey @ "ère"
[
frère =
jean
mère =
denise
père =
eric
]
replaceElementsIn:collection with:expression
copyByReplacingElementsIn:collection with:expression
Remplace (ou copie en remplaçant) les éléments de collection avec les résultats de expression.
Exemples
>> copyByReplacingElementsIn:a with:2 * this
{
4
6
10
14
22
}
>> copyByReplacingElementsIn:d with:capitalize:this
[
amie =
Anne
frère =
Jean
mère =
Denise
père =
Eric
prénom =
Simon
]
withEachElementOf:collection do:expression
Exécute expression pour chaque élément de collection.
Exemples
>> withEachElementOf:a do:write:"n = ", this
n = 2
n = 3
n = 5
n = 7
n = 11
>> withEachElementOf:d do:write:thisKey, " : ", this
frère : jean
père : eric
mère : denise
prénom : simon
amie : anne