Лямбда-выражение
Лямбда-выражение в программировании — специальный синтаксис для определения функциональных объектов, заимствованный из λ-исчисления. Применяется как правило для объявления анонимных функций по месту их использования, и обычно допускает замыкание на лексический контекст, в котором это выражение использовано. Используя лямбда-выражения, можно объявлять функции в любом месте кода.
Лямбда-выражения поддерживаются во многих языках программирования (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].
Примечания
- A tour of the Dart language . dart.dev. Дата обращения: 16 января 2020.
- Лямбда-выражения (Руководство по программированию в C#)
Литература
- 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. (Перевод Глава о функциях)