• [^] # Re: Célèbre ?

    Posté par . En réponse à la dépêche Sortie de Ruby on Rails 2.0. Évalué à 1.

    for est d'un usage très général. Par exemple, comment tu fais "for(;;)" avec "times do" ?
    Le language doit rester général et ne pas avoir 10 000 mots clés pour chaque cas.

    Le "times do", tu peux le faire avec une "hideuse" macro (j'ai oublié un peu le php)


    A ton tour tu compares des pommes et des poires puis tu déguises une poire en pomme :)

    L'instruction "N.times do ... end" est un itérateur auquel on passe en argument un bloc de code, pas une simple instruction de boucle. Ce sont deux concepts qui n'existent pas en PHP, en tout cas pas avec la simplicité et l'intégration qu'offre Ruby.

    Certes il y a ça [1] mais c'est loin d'être élégant et naturel à écrire...

    D'autre part, un exemple tel que 3.times do puts "Hello" end est juste là pour illustrer les itérateurs, et ne donne pas vraiment une idée de la puissance réelle de ceux-ci et de leur l'utilité dans un contexte plus complexe (par exemple la création d'un framework tel que Rails).

    Ces concepts ne sont certes pas novateurs (les itérateurs par exemple existent en Smalltalk depuis longtemps), mais Ruby est celui qui les implémente le mieux parmi les langages les plus couramment utilisés [2].

    1 : http://frederic.bouchery.free.fr/?2004/11/01/30-Creer-Un-Ite(...)

    2 : http://www.tiobe.com/tpci.htm