C'est la aussi ou on voit toute la puissance des itérator de Sather. En Sather, les classes ont des attributs, des méthodes et des itérators. Le gros avantage est de pouvoir itérer sur plusieurs iétrateurs dans une même boucle et le compilateur peux optimiser en mettant toute la partie initialisation en dehors de la boucle.
L'autre gros avantage, il n'y a plus de structure for, while until ! Inutile, dépassé. for devient l'iterator upto! sur les entiers
for (i=1, 1000) {....}
devient
loop
1.upto!(1000)
....
end
Idem pour while
while (test) {....}
qui devient
loop
while!(test)
...
end
L'itérator while! est appellé sur aucun objet. En fait, on pourrait le mettre sur un objet booléen #BOOL, true ou false et considérer que cette notation n'est que du "syntatic sugar".
Bref, tout un tas de structure devienne bien plus simple avec cette notion d'itérator.
[^] # Re: Pffff...
Posté par Sytoka Modon (site web personnel) . En réponse au journal Un compte rendu de la conf sur isaac/lisaac. Évalué à 3.
for (i=1, 1000) {....}devient Idem pour whilewhile (test) {....}qui devient L'itérator while! est appellé sur aucun objet. En fait, on pourrait le mettre sur un objet booléen #BOOL, true ou false et considérer que cette notation n'est que du "syntatic sugar". Bref, tout un tas de structure devienne bien plus simple avec cette notion d'itérator.-
http://www.gnu.org/software/sather/docs-1.2/tutorial/iterato(...)
La contruction de l'itérator while! est très simple (les autres aussi), en voici un exemple d'implémentation Si on s'authorise l'opérateur ? : du C, cela raccourci carrément le code