- Анонимная функция
-
Анонимная (безымянная) функция — в программировании особый вид функций, которые объявляются в месте использования и не получают уникального идентификатора для доступа к ним. Обычно при создании они либо вызываются напрямую, либо ссылка на функцию присваивается переменной, с помощью которой затем можно косвенно вызывать данную функцию.
Синтаксис
Синтаксис записи анонимных функций для различных языков программирования в большинстве случаев сильно различается.
Язык Пример записи сложения 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; }
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}
Lua function(x,y) return x+y end
Maple (x, y) -> x + y
Mathematica #1+#2&
или
Function[#1+#2]
или
Function[{x,y},x+y]
MATLAB f=@(x,y) x+y
Perl sub { return $_[0] + $_[1] }
PHP // PHP 5.3 function($x, $y) { return $x + $y; }
// PHP 4 >= 4.0.1, PHP 5 create_function('$x, $y', 'return $x + $y;')
Python lambda х, у: х+у
R function(x,y) x+y
Ruby proc{|x,y| x + y }
Scheme (lambda (x y) (+ x y))
Примечания
- ↑ C++11. Лямбда-выражения
- ↑ Описание в справочнике «Ядро JavaScript»
- ↑ Mathematica Documentation: Function (&)
- ↑ perldoc perlref (англ.)
- ↑ PHP Manual
- ↑ PHP Manual
- ↑ Раздел учебника «Освой Python за 24 часа самостоятельно»
- ↑ Описание в книге «Programming Ruby» (англ.)
См. также
Категория:- Концепции языков программирования
Wikimedia Foundation. 2010.