Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Згортка / Процедура reduce
Тест — Згортка
Що надрукує наступна програма?
say (10, 1, 2, 3).reduce(* - *);| 1 | 4 |
| 0 | 8 |
| 0 | 16 |
| 0 | -4 |
reduce згортає список зліва направо, і
першим аргументом блоку завжди є результат, накопичений
досі, — тут це лівий операнд -. Тож обчислюється
((10 - 1) - 2) - 3, тобто 9 - 2 - 3 = 4.
Згортка в інший бік, 10 - (1 - (2 - 3)), дала б
8, а додавання замість віднімання дало б 16.
На відміну від +, віднімання залежить від порядку, тож ролі
двох аргументів справді мають значення.
Навігація курсом
← Процедура reduce | Сума списку →