Анонімна функція
З Вікіпедії, безкоштовно encyclopedia
В комп'ютерному програмуванні, анонімною функцією (інші назви функціональний літерал або лямбда-вираз, лямбда-функція) називається така функція, яка визначена без вказання пов'язаного з нею ідентифікатора. Анонімні функція зазвичай:
- передаються у вигляді аргументу у функції вищого порядку, або
- використовуються для побудови результату функції вищого порядку, яка має повертати функцію.
Якщо функція використовується в програмі лише раз, або обмежену визначену кількість раз, використання анонімної функції може бути більш синтаксично простішим ніж використання іменованої функції. Анонімні функції широко застосовуються у функціональних мовах програмування і інших мовах програмування з функціями першого класу, де вони виконують ту саму роль для функціонального типу, що і літерали для інших типів даних.
Анонімні функції були представлені в роботі Алонзо Черча як винайдене ним лямбда числення у 1936 (до появи електронно-обчислюваних машин), в якому всі функції анонімні. В деяких мовах програмування, анонімні функції оголошуються з використанням ключового слова lambda, а самі анонімні функції часто називаються лямбда абстракціями або лямбда виразами. Анонімні функції почали використовуватись в мовах програмування починаючи з мови Lisp в 1958 і тепер дедалі більше сучасних мов програмування підтримують анонімні функції.
Анонімні функції є формою вкладених функцій, в тому плані, що вони дозволяють доступ до змінних в зоні видимості функції, в яку вони вкладені (не локальні змінні). Це означає, що анонімні функції повинні визначатися з використанням замикань. На відміну від іменованих вкладених функцій, вони не можуть бути рекурсивними без використання оператору фіксованої точки (також називається анонімною фіксованою точкою або анонімною рекурсією).