算法与计算机科学worrydream.com编辑精选
鳄鱼蛋:λ 演算的互动讲解
Alligator Eggs
2009 — 2015,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Bret Victor 制作的一个用「鳄鱼与蛋」的纸片游戏来讲解 lambda 演算的页面:鳄鱼代表函数/抽象,吃下东西代表函数应用,被吃者留下的蛋孵化成与其同色的鳄鱼,以此演示 β 归约和变量捕获问题。它更像一个概念演示和教学设想,而非可直接玩的成品游戏。
为什么经久不衰:它用一个荒诞却直观的实体类比,把最抽象的 λ 演算变成可以动手摆弄的纸片,且评论区的争论(类比究竟帮了忙还是添了乱)本身就让这篇经典常读常新。
HN 评论精选
页面只是概念演示,没有可玩的成品,动手制作的人白忙一场。
觉得好玩,我就动手把这些纸片全剪了出来,花了好几个小时(现在还原样留着)。纯粹是图个乐,当时大概在听有声书,也许还喝了点威士忌。可剪完之后才真正去读那篇文章——根本没有意义!压根没有游戏可玩。唉,我事先不知道这只是一个未完成的概念。
millerm查看英文原文
The funning this, I decided to do this for fun. I spent hours cutting out all of these things (I still have them). Again, it was just for fun as I was probably just listening to an audiobook or something (perhaps a little scotch thrown in there). But... after I did all that cutting did I actually read the post. There was no point! There was no game to play. Doh! I wasn't aware it was only a concept and was unfinished.
质疑这套类比反而增加了理解难度。
为什么会有人费这么大劲,把 lambda 演算搞得这么难懂?
qwertzlcoatl查看英文原文
Why would anyone go to so much trouble to make lambda calculus difficult?
鳄鱼类比与常识相悖,对成年人反而增加认知负担,且无人验证过对孩子的效果。
认真提问:有人真的拿这套东西试过小孩吗?效果如何?也许孩子更能接受游戏里那些随意设定的元素和规则,因为作为成年人,我觉得鳄鱼这个设定反而让我更糊涂。用具体的人名、人物、巧克力等代替抽象符号通常很有帮助,因为它借用了已有的心智模型,降低了追踪抽象符号和行为的认知负担。但这里鳄鱼和蛋的行为跟任何熟悉的东西都差得太远(蛋孵出来会变成父母吃下去的东西?!),认知负担反而大到让人放弃。依我看,对成年人来说,直接用抽象符号平铺直叙反而更好懂。
tubelite查看英文原文
Serious question: Has anyone tried this out on actual children? How did it go? Maybe children can more easily accommodate the number of arbitrary elements and rules the game requires, because as an adult, I find the alligator motif actively confusing. Using concrete names, people, chocolates rather than abstractions usually helps a lot in teaching, because it leverages existing mental models and reduces the cognitive burden of tracking abstract tokens and behaviours. In this case, the alligators and their eggs behave so differently from anything familiar (egg hatching to whatever the parent ate?!) that I find the cognitive burden increases to the point of giving up. IMHO, for adults, a straight-up explanation with abstract symbols would actually be easier to comprehend.
类比掩盖了核心机制的任意性,反而更令人困惑。
我不喜欢这个鳄鱼类比,因为它靠的是魔法。每当鳄鱼吃东西,它就会以一种没有明显机制的方式改变自己的蛋。如果某个抽象机制本身就难以直觉理解,那给它套上表面的现实生活类比,我看不出能怎么帮助理解——反直觉的行为依然在那儿。至少该把它点明,比如让鳄鱼变成巫师什么的。
mrob查看英文原文
I don't like this alligator analogy because it relies on magic. Whenever an alligator eats it transforms its eggs by no obvious mechanism. If some abstract mechanism is unintuitive then I don't see how decorating it with superficial real life analogies makes it any easier to understand. The unintuitive behavior is still there. At least draw attention to it by making the alligators wizards or something.
历次讨论
同类还值得读
位运算技巧集
Bit Twiddling Hacks
斯坦福页面上的经典位运算技巧合集,收录了 popcount、前导/尾随零、位反转、交换、舍入等大量技巧,并附有解释和性能讨论。
算法与计算机科学上首页 8 次 · 2011–2024graphics.stanford.edu编辑精选如何不按平均评分排序
How Not To Sort By Average Rating
经典文章解释了为什么按平均评分排序不可靠:只有少量评价的条目(比如仅一条五星)会轻易排到最前,而评价数量的差异被忽略。
算法与计算机科学上首页 7 次 · 2009–2024evanmiller.org编辑精选数据结构可视化
Data Structure Visualizations
旧金山大学 David Galles 教授制作的数据结构与算法交互式可视化网站,涵盖 B 树、红黑树、排序、图算法等,可逐步操作观察其运行过程。
算法与计算机科学上首页 6 次 · 2011–2021cs.usfca.edu编辑精选1996 年以来的计算机科学最佳论文奖
Best Paper Awards in Computer Science since 1996
Jeff Huang 维护的一个汇总页面,收录了自 1996 年以来计算机科学各主要会议的“最佳论文奖”获奖名单,并按年份和会议整理,方便读者一站式浏览历届获奖论文。
算法与计算机科学上首页 6 次 · 2010–2018jeffhuang.com编辑精选算法(Jeff Erickson)
Algorithms, by Jeff Erickson
伊利诺伊大学 Jeff Erickson 教授的算法课教材,免费在线开放。
算法与计算机科学上首页 5 次 · 2018–2022jeffe.cs.illinois.edu编辑精选