2013-04-10 55 views
10

表達式\x -> y通常由Haskell程序員發音嗎?How do you say` x - > y`嗎?

我問,因爲我通常會說「lambda eks dot why」,因爲它在一般情況下寫入λx.y,我通過書和筆記介紹了lambda演算,沒有聽到任何人將術語轉化爲語音。但在Haskell中,這是一個箭頭,而不是點。

我明白,計算機科學的人通常會在演講中淡出點(「lambda eks [short pause] y」)。 F#和C#程序員,網絡告訴我,經常發音等效表達式x => y爲「eks去爲什麼」。我不知道在其他情況下有多少類似的結構。

那麼在Haskellers中它是「lambda eks arrow why」還是什麼?

+1

我通常會發音爲「lambda x <指示性暫停> y」。但它永遠不會平穩 – luqui 2013-04-11 07:25:28

回答

11

我通常發音爲「lambda x to y」。這非常短,並且與TeX中的輸入方式相匹配:\lambda x \to y。 (作爲一個可愛的筆記,我在我的編輯器中有一個TeX輸入模式,所以我可以輸入以上代碼以獲得λ x → y:P)

這就是說,我相信每個人都會理解你,如果你說「lambda x dot y「 - 大多數人至少對這種表示法很熟悉,並且很容易從上下文中猜出您的意思。

但是,我從來沒有聽到有人說「去」。

+1

我說因爲與我的理論家朋友在一起,所以我會說'A到B'。 – jozefg 2013-04-10 03:42:09

+0

這是哪個編輯器? – AndrewC 2013-04-10 06:38:48

+1

@AndrewC:Emacs。這是'TeX'輸入模式:你可以只做'C- \'並輸入'TeX'來選擇它。 – 2013-04-10 06:44:18

2

回答我自己:在我看來,我經常說它是「x走向y」,或者簡單地說「x到y」 - 但我認爲它適應一些常見的高階函數。如果你有map (\x -> (x * 2) - 1) foo,我會認爲它是「map x to x times two minus one on foo」。然而,對於像filter (\x -> x /= 6) foo這樣的東西,我認爲它是「過濾x,x在foo上不等於6」 - 實際上,箭頭在這種情況下變成了逗號。

相關問題