2010-06-03 62 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表达式:

第(免责声明 - 我的博客)会给你的基本概念的简单说明。本书提供了所有相关主题的全面报道。