如果您必须向5年级学生(10/11岁)解释Lambda表达式,您会怎么做?你可以给出什么样的例子,或者你可以指出它们的资源?我可能会发现自己处于不得不向五年级开发人员讲授这个问题的位置,并且可以使用一些帮助。
[编辑]:“五年级学生”的参考意味着与一个美国电视节目有关,这个节目在测验类型设置中对成年人和五年级学生进行了对比(我认为)。我的意思是暗示那些需要被教导的人对Lambda一无所知,我需要找到一种方法来使事情变得非常简单。对不起,我忘了这个论坛有全世界的观众。
非常感谢。
答案 0 :(得分:6)
只需将其称为无名称的功能。如果她没有接受过太多的编程,那么在考虑所有函数都应该有名字的情况下,她的思想并没有被钙化。
与lambda表达式相关的大多数复杂性都是由复杂的命名引起的,并将其放在大理石基座上。
很多孩子用很多Javascript的东西创建了很棒的网站。有可能他们一直在使用lambda表达式而不知道它。他们只是称之为“酷玩法”。
答案 1 :(得分:2)
我认为你不需要向10-11岁的孩子解释lambda表达。只要向他们展示lambda表达式的外观,你可以用它们做什么,以及你可以在哪里使用它们。那个年龄段的孩子仍然有能力学习新东西而不依赖类比来理解它。
答案 2 :(得分:1)
Lambda表达式是我认为的高阶编程。严格的解释将需要广泛的先决条件学习。当然,这在五年级不实用。
然而,以一种反映现实生活情境的方式举例说明一些概念可能会有所帮助。
例如,比例是一种lambda表达式。它可以计算放在其上的物体的质量。它不是变量,因为它不会将数字存储在任何地方。相反,它会在使用时生成数字。再次使用时,它会根据其输入重新计算。你可以把它放在其他地方并使用它,但底层的机制(表达式)是相同的。
答案 3 :(得分:1)
如果他已经了解“功能”是什么,你可以说这是你只需要一次的功能,因此它不需要名字。
无论如何,如果你需要解释函数式编程,我建议你试着从http://learnyouahaskell.com/中窃取一些想法 - 这是我读过的函数式编程背后的最佳解释之一。
答案 4 :(得分:0)
c#中的Lambda表达式基本上只是匿名代表,因此在向任何人解释它们时,他们需要按顺序理解:
代表是什么以及它们用于什么。
匿名代表是什么以及它是如何创建委托的简便方法。
Lambda表达式语法以及它如何真正成为创建匿名委托的简便方法。
答案 5 :(得分:0)
如果最先进的OO语言(C#)10年没有得到它,那么开始向五年级学生解释可能不是最好的事情。
很难想出一个没有名字的函数的类比......也许它很重要,因为它是一种不那么冗长的方式来指定一个回调?
答案 6 :(得分:0)
我假设你实际上正在寻找程序员的基本介绍,而不是实际的五年级学生。 (对于五年级学生,Python或JavaScript往往是最好的)。无论如何,对C#lambda表达式的两个很好的介绍:
第一个(免责声明 - 我的博客)将为您提供基本概念的快速解释。该书提供了所有相关主题的完整报道。