Voici la spécification des itérateurs en général :
Code:
1 2 3
|
collection->iterate(element : Type1;
result : Type2 = <expression> | <expr-with-element-and-result) |
Il existe des iterateurs tous faits (exists, select, any, etc..)
Par exemple, on pourrait réécrire l'itérateur select ainsi :
Code:
1 2 3 4 5
|
source->select(iterator | body) =
source->iterate(iterator; result : Set(T) = Set{} |
if body then result->including(iterator)
else result |
Où body est un bloc d'instruction retournant vrai/faux
Mais j'ai du mal à voir comment y mettre de la récursivité, désolé...