lambda演算中的lambda符號能去掉嗎?

時間 2021-06-02 00:11:34

1樓:藥罐子千里冰封

可以去掉,但是這不利於引入一些 lambda 的擴充套件功能,比如模式匹配。另外,按照你的寫法,表示式 a. a b. b 裡面的 a b 這一部分容易被看成是乙個函式應用。

另外,如果 lambda 演算中的 lambda 去掉的話,就沒法和微積分區分了。

另外:用 Windows 自帶的中文輸入法輸入 lambda 就可以在候選框裡面看到 λ。我的手機輸入法是谷歌拼音,它的符號表裡面有全套希臘字母,所以也可以很輕鬆地輸入。

有的時候我也會用漢字入來代替 λ 但是這一般只在開玩笑的場合用。

2樓:

lambda x.lambda y.x+y也可以寫成x.

y.x+y呀,凡是寫在前面,用.分割的,都可以看做繫結變數。

反正.在表示式中也不會用作計算,這樣不就又省去寫乙個lambda這個古怪的符號嗎?

這裡的 只是乙個語法的要素,我們用它來表示我們要談論的物件。你可以把 替換成其他任何字元,或者忽略掉它而僅僅說形如 x.e 的式子都是乙個函式。

但不論我們用什麼方式來寫下要談論的物件,這些物件的含義/語義沒有發生變化。

再說lambda有啥詞源嗎?

維基百科上就有解釋

搬運一下:

一種說法是 符號來自於 Whitehead & Russel 的《數學原理》:書中使用 來表示抽象,Church 把x上面的帽子放到了變數名的前面 ,這裡的 是大寫的希臘字母Lambda,但是和英文本母A的區分不夠明顯,因此被改為小寫的希臘字母lambda 。

另一種說法是沒有啥特別的原因,就是 Church 隨手找了個順眼的符號。

3樓:黃亮anthony

lambda可以寫作^或\ 或λ,最後那個是希臘字母,就讀作lambda

這個λ是數學原理中引入的符號,數學家喜歡希臘字母。

文法原理上說,有這個前導可以歧義更少,不用等到點號出現才知道這可能是乙個函式。不用也可以,括號可以起同樣作用。

C 巢狀lambda中可以引用外圍lambda捕獲的變數嗎

可以。我試了下 gcc 從 4.7.1 std c 11 開始就支援這種寫法了。4.7.1 可是 gcc 第乙個正式支援 C 11 的版本 最早到 gcc 4.5.3 雖然它還不能識別引數 std c 11,但是用 C 11 的代號 std c 0x,也能通過編譯。也就是說,gcc 尚在 11 的實...

C 的lambda是函式還是物件?

懷玉 1 物件就是計算機的操作物件,就是程式要處理的東西 2 所有的物件都在記憶體中有一席之地,在記憶體中有一席之地的都是物件。 Iterator lambda是函式物件,而函式物件是過載了operator 的類或結構體的乙個例項。乙個直觀的例子可以展示它倆的關係 C Primer 中文第五版 P5...

C 中的lambda表示式的優越性體現在那些方面?

消失的無意識 有乙個有點用的特性,lambda表示式的型別是獨一無二的,用它可以特化出乙個在該位置唯一的模板。其實和宣告乙個匿名結構是一樣的 可以用來區分static const變數快取,比如說執行時字串拼接,然後用於exception中,這裡拼接函式就要求每個地方是不同的特化。諸如 pretty ...