Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Лямбди та замикання

Лямбди

Лямбда — це функція без імені. Ви вже зустрічали два способи її записати. Перший — це гострий блок, що перелічує свої параметри після стрілки ->:

my &square = -> $x { $x * $x };
say square(7); # 49

Другий — форма Whatever, у якій * заступає аргумент, а вираз навколо нього стає функцією від одного аргументу:

my &square = * ** 2;
say square(7); # 49

Обидва створюють ту саму річ: шматок коду, який можна зберігати, передавати й викликати. Лямбди сяють як аргументи функцій вищого порядку, де ім’я лише заважало б:

say (1..5).map(-> $n { $n * $n }); # (1 4 9 16 25)
say (1..5).map(* ** 2);            # (1 4 9 16 25)

Гостра форма зрозуміліша, коли тіло довше або параметрів кілька; форма з Whatever чудово коротка для простих виразів. Це два написання однієї ідеї: функції без імені.

Практика

Виконайте 1 тест за змістом цієї теми.

Навігація курсом

Лямбди та замикання   |   Тест — Лямбди


💪 Або перейдіть одразу до вправ цього розділу.