2014-10-29 108 views
1

我只是不明白lambda表達式的力量。Lambda表達式與程序式函數

的Python

def sum(x, y): 
    return x + y 

方案

(lambda (x y) (+ x y)) 

爲什麼從另一個除了lambda表達式等不同沒有給出一個正式的名字?看起來你可以用這兩種方法做同樣的事情,那麼爲什麼我的老師在lambda演算中如此重要呢?

+0

拉姆達可以快速扔掉的功能,那就是無名的,所以如果你只能用一個功能一次,這也許可以解釋爲什麼使用lambda表達式 – ryekayo 2014-10-29 19:31:44

回答

0

直覺,當我們比較兩個工具,我們想想其中的一個實現,其他不能讓我們可以瞭解一個比其他的好處,但在這個特殊的情況下,兩個工具(程序和功能)就您可以實現的目標而言是等同的,即您可以執行哪些計算。

上述情況是什麼使人們開始學習函數式編程,因爲他們開始比較什麼可以在一個不能在另一個做實現時混淆。

現在,如果您遇到有兩種工具的情況,比如說2臺洗衣機(假設 - 來自行星A和來自行星B的其中一臺),並且它們對不同的洗滌劑達到相同的洗滌質量,您將如何方法來比較它們並找出差異?唯一可能的區別方式是他們如何實現結果,即拆開洗衣機,開始查看洗衣機的內部,找出它們如何達到結果,並且會導致您得出結論:「兩次洗滌之間的差異機器是原始組件(螺母,螺栓,電路等)以及它們如何組合/連接在一起以實現結果在兩臺機器中都不同「。

基於以上觀察,你可能會說 - 的演算和程序的方法有不同的原語,他們有不同的方法來合成/附上這些原語執行所需的計算。