Лямбда-выражение (LxbQ;g-fdjg'yuny)

Перейти к навигации Перейти к поиску

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

Лямбда-выражения поддерживаются во многих языках программирования (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].

Примечания

[править | править код]
  1. A tour of the Dart language. dart.dev. Дата обращения: 16 января 2020. Архивировано 14 января 2020 года.
  2. Лямбда-выражения (Руководство по программированию в C#). Дата обращения: 29 декабря 2009. Архивировано 29 мая 2014 года.

Литература

[править | править код]
  • 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. (Перевод Глава о функциях)