Implémente l'opération accumulate qui, étant donné une collection et une opération à appliquer à chaque élément de la collection, renvoie une nouvelle collection contenant le résultat de cette opération appliquée à chaque élément de la collection d'entrée.
Étant donné la collection de nombres :
Et l'opération :
x => x * x)Ton code doit pouvoir produire la collection des carrés :
Jette un œil à la suite de tests pour voir la signature de fonction attendue.
Ne touche pas à cette fonctionnalité collect/map/fmap/machin-chose fournie par ta bibliothèque standard ! Résous celui-ci toi-même en utilisant d'autres outils de base à la place.
Il est courant d'appeler #to_enum lorsque l'on définit des méthodes pour un Enumerable générique, dans le cas où aucun bloc n'est passé.
Voici un test supplémentaire que tu pourrais ajouter :
def test_accumulate_when_block_is_deferred
skip
accumulate_enumerator = [1, 2, 3].accumulate
accumulated_result = accumulate_enumerator.map do |number|
number * number
end
assert_equal [1, 4, 9], accumulated_result
end
Inscris-toi sur Exercism pour apprendre et maîtriser Ruby avec 21 concepts121 exercices, et un vrai mentorat humain, le tout gratuitement.