2010-06-03 47 views
7

如果你不得不向五年級學生(10/11歲)解釋Lambda表達式,你會怎麼做?你可以給出什麼樣的例子,或者你可以指點他們的資源?我可能會發現自己處於不得不向五年級開發人員傳授這些信息的位置,並且可以使用一些幫助。五年級學生的Lambda表達式

[編輯]:「5年級學生」的參考資料是爲了與一個美國電視節目相關,這個電視節目在測驗類型設置中讓成年人與五年級學生相處(我認爲)。我的意思是暗示那些需要學習的人對Lambda一無所知,我需要找到一種辦法讓事情變得非常簡單。對不起,我忘了這個論壇有全球觀衆。

非常感謝。

+6

就這樣,我們非美國居民不必去研究它,什麼年齡段是「五年級」 – 2010-06-03 11:32:04

+1

通用建議:建立在他們已經知道的東西上。他們現在是否已經有一些關於代表,函數指針,函數式編程,lambda演算等等的東西?他們的背景是什麼?如果他們剛剛開始學習編程,你確定lambda表達式,甚至C#是否是正確的教給他們的東西? – dtb 2010-06-03 11:35:46

+1

在美國的學校,五年級是小學10至11歲左右。 http://en.wikipedia.org/wiki/Fifth_grade – spoulson 2010-06-03 11:37:31

回答

6

只是稱它爲一個沒有名字的函數。如果她沒有接觸過很多程序設計,她的思想就不會因爲認爲所有功能都應該有名字而被鈣化。

與lambda表達式相關的大部分複雜性都是由複雜的命名引起的,並將其放置在大理石底座上。

很多孩子創建偉大的網站與很多的Javascript的東西。有可能他們一直都在使用lambda表達式而不知道它。他們只是把它稱爲一個「酷招」。

1

Lambda表達式是我認爲更高階的編程。嚴格的解釋將需要廣泛的先決條件學習。當然,這在五年級時並不實用。

但是,它可能有助於以一種反映真實生活情況的方式通過示例來涵蓋一些概念。

例如,scale是一種lambda表達式。它會記錄放置在其上的物體的質量。它不是一個變量,因爲它不會將數字存儲在任何地方。相反,它會在使用時生成數字。當再次使用時,它會根據其輸入重新計算。你可以把它放在別的地方,但是底層的機制(表達式)是一樣的。

+0

+1爲體重秤的類比 – IAbstract 2010-06-03 11:38:58

0

在C#Lambda表達式基本上是這樣解釋他們是他們需要在這個以瞭解任何人什麼時候才匿名委託:

什麼委託是,他們是用來做什麼的。

什麼是匿名委託,以及它如何創建代表的簡短方式。

Lambda表達式語法以及它是如何創建匿名委託的更簡短的方法。

+1

我想說一個代表是一種詳細的方式來寫一個lambda表達式......爲什麼學生必須按照他們在語言中被引入的順序來教授語言特徵? – dtb 2010-06-03 11:39:17

+0

他們不一定非要,我只是想,如果你看到了什麼是什麼東西,它來自哪裏以及它爲什麼存在的全貌,它可以幫助你理解如何使用它。 – 2010-06-03 11:51:12

1

如果他已經理解「功能」是什麼,你可以說它是你只需要一次的功能,因此它不需要名稱。

無論如何,如果您需要解釋函數式編程,我會建議嘗試從http://learnyouahaskell.com/中竊取一些想法 - 這是我讀過的函數式編程背後最好的想法解釋之一。

+0

Haskell的+1 ***教學功能編程是目標。 – dtb 2010-06-03 11:41:23

0

如果一個尖端的OO語言(C#)10年沒有得到它,可能不是開始向五年級學生解釋的最好的東西。

很難想出一個沒有名字的函數的類比...也許它很重要,因爲它是一個不太詳細的方式指定回調?

2

我不認爲你需要向10-11歲的孩子解釋lambda表達式。只需向他們展示lambda表達式的外觀,您可以如何使用它們以及在哪裏使用它們。那個年齡的孩子仍然有能力學習新的東西,而不依靠類比來理解它。

0

我假設你實際上是爲程序員尋找一個基本介紹,而不是實際的五年級學生。 (對於五年級的學生來說,Python或JavaScript往往是最好的)。不管怎麼說,兩個好介紹給C#lambda表達式:

第(免責聲明 - 我的博客)會給你的基本概念的簡單說明。本書提供了所有相關主題的全面報道。