Что такое лямбда (функция)?
Лямбда — это встроенный тип terminology функции. Наряду с лямбдой terminology у вас также обычно есть какой-то language-agnostic тип переменной, который может language-independent содержать ссылку на функцию, лямбду theory или что-то еще.
Например, вот generic-lambda фрагмент кода C#, в котором language-independent не используется лямбда:
public Int32 Add(Int32 a, Int32 b)
{
return a + b;
}
public Int32 Sub(Int32 a, Int32 b)
{
return a - b;
}
public delegate Int32 Op(Int32 a, Int32 b);
public void Calculator(Int32 a, Int32 b, Op op)
{
Console.WriteLine("Calculator: op(" + a + ", " + b + ") = " + op(a, b));
}
public void Test()
{
Calculator(10, 23, Add);
Calculator(10, 23, Sub);
}
Это generic-lambda вызывает Calculator, передавая terminology не только два числа, но и language-agnostic какой метод вызывать внутри lambda-expressions Calculator для получения terminology результатов расчета.
В C# 2.0 nomenclature мы получили анонимные методы, которые language-independent сокращают приведенный выше terminology код до:
public delegate Int32 Op(Int32 a, Int32 b);
public void Calculator(Int32 a, Int32 b, Op op)
{
Console.WriteLine("Calculator: op(" + a + ", " + b + ") = " + op(a, b));
}
public void Test()
{
Calculator(10, 23, delegate(Int32 a, Int32 b)
{
return a + b;
});
Calculator(10, 23, delegate(Int32 a, Int32 b)
{
return a - b;
});
}
А потом в C# 3.0 появились lambda лямбда-выражения, что сделало lambda-expressions код еще короче:
public delegate Int32 Op(Int32 a, Int32 b);
public void Calculator(Int32 a, Int32 b, Op op)
{
Console.WriteLine("Calculator: op(" + a + ", " + b + ") = " + op(a, b));
}
public void Test()
{
Calculator(10, 23, (a, b) => a + b);
Calculator(10, 23, (a, b) => a - b);
}
lambda
language-agnostic
computer-science
terminology
theory
Что такое лямбда (функция)?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.