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

Накопичення

Легка

Вказівки

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

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

  • 1, 2, 3, 4, 5

І операцію:

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

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

  • 1, 4, 9, 16, 25

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

Обмеження

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

Якщо бути точнішими, нам не можна використовувати жодного з вбудованих методів LINQ.

Тест на лінивість

Оскільки accumulate повертає IEnumerable, його виконання відкладається доти, доки на ньому не викличуть ToList(). Саме це перевіряє метод Accumulate_is_lazy.

Підказки

У цій вправі потрібно написати метод розширення. Докладніше див. цю сторінку.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
C# Exercism

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

Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.