Valósítsd meg az accumulate műveletet, amely egy gyűjtemény és a gyűjtemény minden elemén végrehajtandó művelet megadásakor visszaad egy új gyűjteményt, amely tartalmazza annak eredményét, hogy a műveletet a bemeneti gyűjtemény minden elemére alkalmaztad.
Adott a következő számgyűjtemény:
És a művelet:
x => x * x)A kódodnak elő kell tudnia állítania a négyzetek gyűjteményét:
Nézd meg a tesztkészletet, hogy megismerd az elvárt függvényszignatúrát.
Ne nyúlj a szabványos könyvtárad által biztosított collect/map/fmap/izé funkciókhoz! Oldd meg inkább magad, más alapvető eszközök segítségével.
Általános Enumerable metódusainak definiálásakor gyakori, hogy meghívjuk a #to_enum metódust, arra az esetre, ha nem adnak át blokkot.
Íme egy további teszt, amit hozzáadhatsz:
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
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Ruby nyelvet 21 fogalom121 feladat segítségével, valódi emberi mentorálással, mindez ingyen.