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

Анонімна (безіменна) функція - в програмуванні особливий вид функцій, які оголошуються в місці використання і не отримують унікального ідентифікатора для доступу до них. Зазвичай при створенні вони або викликаються безпосередньо, або посилання на функцію присвоюється змінної, за допомогою якої потім можна побічно викликати цю функцію.


Синтаксис

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

Мова Приклад запису додавання
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
 \ Xy  ->  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  (  xy  )  (  +  xy  )  ) 

Примітки

  1. C + +11. Лямбда-вирази - blog.olendarenko.org.ua/2009/08/c0x.html
  2. Опис у довіднику "Ядро JavaScript" - docs.luksian.com/programming/java/jscoreref15 /? f =. / ops.html # 1066344
  3. Mathematica Documentation: Function (&) - documents.wolfram.com / mathematica / functions / Function
  4. perldoc perlref - perldoc.perl.org / perlref.html (Англ.)
  5. PHP Manual - php.net / functions.anonymous
  6. PHP Manual - php.net / create_function
  7. Розділ підручника "Освой Python за 24 години самостійно" - fantom-lab.narod.ru/Python/LerningNoName/Chapter-08/08.htm # 6
  8. Опис в книзі "Programming Ruby" - www.rubycentral.com / book / tut_containers.html (Англ.)