Υλοποίησε την πράξη accumulate, η οποία, δεδομένης μιας συλλογής και μιας πράξης που εκτελείται σε κάθε στοιχείο της συλλογής, επιστρέφει μια νέα συλλογή που περιέχει το αποτέλεσμα της εφαρμογής αυτής της πράξης σε κάθε στοιχείο της συλλογής εισόδου.
Δίνεται η συλλογή αριθμών:
Και η πράξη:
x => x * x)Ο κώδικάς σου θα πρέπει να μπορεί να παράγει τη συλλογή των τετραγώνων:
Ρίξε μια ματιά στη σουίτα δοκιμών για να δεις την αναμενόμενη υπογραφή της συνάρτησης.
Κάτω τα χέρια από αυτή τη λειτουργικότητα collect/map/fmap/ό,τι να 'ναι που παρέχει η τυπική βιβλιοθήκη σου! Λύσε το μόνος σου χρησιμοποιώντας άλλα βασικά εργαλεία.
Συνηθίζεται να καλείς το #to_enum όταν ορίζεις μεθόδους για ένα γενικό Enumerable, σε περίπτωση που δεν περαστεί κάποιο μπλοκ.
Ακολουθεί ένα επιπλέον test που θα μπορούσες να προσθέσεις:
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
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Ruby με 21 έννοιες121 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.