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

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

Анонимная (безымянная) функция — в программировании особый вид функций, которые объявляются в месте использования и не получают уникального идентификатора для доступа к ним. Обычно при создании они либо вызываются напрямую, либо ссылка на функцию присваивается переменной, с помощью которой затем можно косвенно вызывать данную функцию.

Синтаксис

Синтаксис записи анонимных функций для различных языков программирования в большинстве случаев сильно различается.

Язык Пример записи сложения
AS3
function(x:int, y:int):int{return x + y;}
C#
(x,y) => x+y
C++11 Общая форма:
[capture](parameters)->return-type{body}

или

[capture](parameters){body}

Пример:

[](int x, int y){ return x + y; }
[1]
CoffeeScript
(x, y) -> x + y
D
delegate(int x, int y){ return x+y; }
Delphi (c 2009 версии)
function(x, y: integer): integer 
begin
  result := x+y;
end;
Erlang
fun(X,Y)->X+Y end
GNU Octave
@(x,y)x+y
Groovy
{x,y->x+y}
Haskell
\x y -> x + y
JavaScript
function(x,y) {return x+y}
[2]
Lua
function(x,y) return x+y end
Maple
(x, y) -> x + y
Mathematica
#1+#2&

или

Function[#1+#2]

или

Function[{x,y},x+y]
[3]
MATLAB
f=@(x,y) x+y
Perl
sub { return $_[0] + $_[1] }
[4]
PHP
// PHP 5.3
function($x, $y) { return $x + $y; }

[5]

// PHP 4 >= 4.0.1, PHP 5
create_function('$x, $y', 'return $x + $y;')

[6]

Python
lambda х, у: х+у
[7]
R
function(x,y) x+y
Ruby
proc{|x,y| x + y }
[8]
Scheme
(lambda (x y) (+ x y))

Примечания

  1. C++11. Лямбда-выражения
  2. Описание в справочнике «Ядро JavaScript»
  3. Mathematica Documentation: Function (&)
  4. perldoc perlref (англ.)
  5. PHP Manual
  6. PHP Manual
  7. Раздел учебника «Освой Python за 24 часа самостоятельно»
  8. Описание в книге «Programming Ruby» (англ.)

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


Смотреть что такое "Анонимная функция" в других словарях:

  • Функция (программирование) — У этого термина существуют и другие значения, см. функция. Функция  в программировании  это поименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо. Функция, в отличие от… …   Википедия

  • Функция (информатика) — Функция в программировании один из видов подпрограммы. Особенность, отличающая её от другого вида подпрограмм процедуры, состоит в том, что функция возвращает значение, а её вызов может использоваться в программе как выражение. С точки зрения… …   Википедия

  • ECMAScript — Класс языка: мультипарадигменный: объектно ориентированное, обобщённое, функциональное, императивное, аспектно ориентированное, событийно ориентированное, прототипное программирование Появился в: 1995 Автор(ы) …   Википедия

  • Лямбда-исчисление — (λ исчисление)  формальная система, разработанная американским математиком Алонзо Чёрчем, для формализации и анализа понятия вычислимости. λ исчисление может рассматриваться как семейство прототипных языков программирования. Их основная… …   Википедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • Lua — У этого термина существуют и другие значения, см. LUA. Lua Класс языка …   Википедия

  • Лямбда-выражения — Лямбда выражение (в программировании)  это специальный синтаксис для объявления анонимных функторов по месту их использования. Используя лямбда выражения, можно объявлять функции в любом месте кода. Обычно лямбда выражение допускает… …   Википедия

  • Луа — Lua Класс языка: мультипарадигмальный: скриптовый, императивный, функциональный, объектно ориентированный (прототипный) Тип исполнения: интерпретируемый, Появился в: 1993 г. Автор(ы) …   Википедия

  • PHP — У этого термина существуют и другие значения, см. PHP (значения). PHP Семантика: мультипарадигменный …   Википедия

  • Groovy — Появился в: 2003 Автор(ы): Джеймс Стрэчен Релиз: 2.0.5 (4 октября 2012 года) Типизация данных …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»