• # Bout de code en ruby

    Posté par . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #42. Évalué à 0.

    Pour le bout de code en ruby :

    # all i want is to sum the goddamn elements
    sum = 0
    (1..10).each_fucking_element { |e| sum += e }
    
    

    C'est exactement le cas d'utilisation de la méthode #inject :

    (1..10).inject(&:+)
    
    

    Pour expliquer :

    • (1..10) est une énumération des entiers de 1 à 10
    • On applique la méthode inject est bien expliquée dans la doc mais en résumé :
      • on a un accumulateur (qui correspond à la variable sum du code précédent) et on fait une opération avec cet accumulateur et les valeurs du tableau.
      • Quand on ne précise pas la valeur de l'accumulateur, elle vaut le premier élément du tableau (1 ici)
      • On peut donc faire : (1..10).inject { |accu, val| accu += val } qui peut être condensé en (1..10).inject(&:+)

    PS : Un matheux aurait dis que c'est Somme des n premiers termes

    "Never trust a statistic you haven't faked yourself."