Implementa l'operazione accumulate: data una collezione e un'operazione da eseguire su ogni elemento della collezione, restituisce una nuova collezione che contiene il risultato dell'applicazione di quell'operazione a ogni elemento della collezione di input.
Data la collezione di numeri:
E l'operazione:
x => x * x)Il codice dovrebbe essere in grado di produrre la collezione dei quadrati:
Dai un'occhiata alla suite di test per vedere la firma della funzione attesa.
Lascia stare quella funzionalità collect/map/fmap/come-si-chiama fornita dalla tua libreria standard! Risolvi questo esercizio da solo, usando altri strumenti di base.
Quando definisci i metodi per un Enumerable generico, è tipico chiamare #to_enum, nel caso in cui non venga passato alcun blocco.
Ecco un test aggiuntivo che potresti aggiungere:
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
Iscriviti a Exercism per imparare e padroneggiare Ruby con 21 concetti121 esercizi e il mentoring di persone reali, tutto gratis.