亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是lambda(函數)?

什么是lambda(函數)?

什么是lambda(函數)?對于一個沒有計算機科學背景的人來說,在計算機科學的世界里,什么是“羔羊”(Lambda)?
查看完整描述

3 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

lambda是一種函數類型,定義為內聯。除了lambda之外,通常還有某種類型的變量,可以保存對函數lambda或其他函數的引用。

例如,這里有一段C#代碼,它不使用lambda:

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);}

它調用Calculator,傳遞的不只是兩個數字,而是調用Calculator內部的哪種方法來獲得計算結果。

在C#2.0中,我們獲得了匿名方法,這些方法將上面的代碼縮短為:

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,這使得代碼更短:

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);}


查看完整回答
反對 回復 2019-07-09
?
達令說

TA貢獻1821條經驗 獲得超6個贊

它指的是Lambda微積分,它是一個正式的系統,只有lambda表達式,它表示一個函數作為其唯一的參數并返回一個函數。λ演算中的所有函數都是這類函數,即,λ : λ → λ.

LISP使用lambda概念來命名它的匿名函數文本。此lambda表示一個函數,它接受兩個參數x和y,并返回它們的乘積:

(lambda (x y) (* x y))

它可以像下面這樣在行中應用(計算值為50):

((lambda (x y) (* x y)) 5 10)


查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 1489 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號