Анонимна функция

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

Анонимна функция (наричана още Функционален литерал или Ламбда функция) в програмирането е функция (или процедура), която е дефинирана, но не и именована.

Анонимните функции най-често са малки и се използват, за да бъдат предадени като параметър на други функции, с цел спестяване на писането. В много езици (като Ruby и Python) анонимните функции са винаги и затваряния.

История[редактиране | edit source]

Понятието за пръв път е въведено от Алонзо Чърч в неговия Ламбда анализ през 1936, без да има нищо общо с компютрите и програмирането.

В зората на функционалното програмиране, през 1958, Lisp е първият език, който активно се възползва от тях.

Постепенно популярността им нараства дотолкова, че някои езици, които първоначално не са имали поддръжка за тях, също ги въвеждат. Такива са например JavaScript, C# и PHP.

Пример[редактиране | edit source]

С псевдокод е описано едно и също парче код със и без ползване на анонимна функция.

Без анонимни функции сортирането на списък по критерии, дефинирани за текущото сортиране, би станало така:

функция сравнение(а, б)
   върни а > б;
край;

сортиране(м, сравнение); //където м е някакъв масив

С анонимни функции кодът би могъл да се сведе до това:

//според примерния синктасис, блок, който съдържа #1, #2... #n
//се дефинира като анонимна функция с n параметъра
сортиране(м, #1 > #2)

Вижда се, че няколко реда код са спестени, повишавайки четимостта и удобството за писане.

Вижте също[редактиране | edit source]