Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование

Функции высшего порядка

В Raku подпрограмма — обычное значение: её можно сохранить в переменной, передать другой подпрограмме и вернуть как результат. Подпрограмму, которая принимает или возвращает другую подпрограмму, называют функцией высшего порядка, и она — сердце функционального программирования.

Вы уже пользовались функциями высшего порядка, не называя их так: map, grep и sort — все они принимают блок кода в качестве аргумента. В этом разделе показано, как писать собственные.

Эти принимающие блок методы — ещё и естественное место для формы вызова с двоеточием, которая позволяет обойтись без скобок: (1..10).grep: * %% 2 вместо (1..10).grep(* %% 2). Она вводится в теме Вызов с двоеточием, а используемое в ней сокращение * — это звезда Whatever.

Темы этого раздела

Практика

Пройдите 2 теста по содержанию этого раздела.

Упражнения

В этом разделе 3 упражнения. Прежде чем приступать к практике, изучите все темы раздела.

  1. Примените дважды
  2. Создайте умножитель
  3. Фильтрация блоком

Навигация по курсу

Решение: Треугольное число   |   Передача подпрограмм