Лямбда-выражение

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

Лямбда-выражения поддерживаются во многих языках программирования (Common Lisp, Ruby, Perl, Python, PHP, JavaScript (начиная с ES 2015), C#, F#, Visual Basic .NET, C++, Java, Scala, Kotlin, Object Pascal (Delphi), Haxe, Dart[1] и других).

Лямбда-выражения в .NET

Лямбда-выражения принимают две формы. Форма, которая наиболее прямо заменяет анонимный метод, представляет собой блок кода, заключенный в фигурные скобки. Это — прямая замена анонимных методов. Лямбда-выражения, с другой стороны, предоставляют ещё более сокращенный способ объявлять анонимный метод и не требуют ни кода в фигурных скобках, ни оператора return. Оба типа лямбда-выражений могут быть преобразованы в делегаты.

Во всех лямбда-выражениях используется лямбда-оператор =>, который читается как «переходит в» (в языках Java, F# и PascalABC.NET используется оператор ->). Левая часть лямбда-оператора определяет параметры ввода (если таковые имеются), а правая часть содержит выражение или блок оператора. Лямбда-выражение x => x * 5 читается как «функция x, которая переходит в x, умноженное на 5»[2].

Примечания

Литература

  • Rattz, J. Pro LINQ: Language Integrated Query in C# 2008. — Apress, 2007. — ISBN 9781590597897.
  • Fabio Claudio Ferracchiati. LINQ for Visual C# 2008. — Apress, 2008. — ISBN 9781430215806.
  • Albahari, J. and Albahari, B. LINQ Pocket Reference. — O'Reilly Media, 2008. — ISBN 9781449370411.
  • Seibel, P. Practical Common Lisp. — Apress, 2005. — 528 p. — ISBN 9781590592397. (Перевод Глава о функциях)

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.