Треки
/
Ruby
Ruby
/
Вправи
/
Накопичення
Накопичення

Накопичення

Легка

Вказівки

Реалізуйте операцію accumulate, яка, отримавши колекцію та операцію, яку слід виконати над кожним елементом колекції, повертає нову колекцію, що містить результат застосування цієї операції до кожного елемента вхідної колекції.

Маємо колекцію чисел:

  • 1, 2, 3, 4, 5

І операцію:

  • піднести число до квадрата (x => x * x)

Код має вміти утворити колекцію квадратів:

  • 1, 4, 9, 16, 25

Перегляньте набір тестів, щоб побачити очікувану сигнатуру функції.

Обмеження

Не чіпайте ту функціональність collect/map/fmap/як-його-там, яку надає стандартна бібліотека! Розвʼяжіть цю вправу самостійно, використавши натомість інші базові інструменти.

Для досвідчених

Визначаючи методи для загального Enumerable, зазвичай викликають #to_enum на випадок, коли блок не передано.

Ось додатковий тест, який можна додати:

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
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Ruby Exercism

Час розпочати Накопичення?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Ruby, а також 21 концепція121 вправа та справжнє наставництво від людей, і все це безкоштовно.