那么点基础 PL 问题怎么各路妖魔鬼怪都出来了……
一个 applicative order 有这么难找么?
好吧,这几十年搞语言的平均水平是比较低,大多就会瞎耦合特性不会复用成熟概念,拉低用户眼界也没办法,学校又不教你历史倒是容易懵逼。。。但是蒙也有点准头吧……还离谱得很那啥。(像 BS 老头搞不清 currying 和 partial application 的区别这种也就算了……)
@
est 这里从头到尾都是 unary 的,如何想到跟 currying 有几毛钱关系的???
@
mengzhuo 都没要求保存活动记录状态,直接死 reduction 都过得去,有没有栈有什么区别……?还 SSA ……您倒是介绍一下连个 binding 都搞不进去的构造里哪来能 A 的东西?实在想象不出这个例子里考虑了会有啥区别。
@
jmc891205 @
bumz 跟一般的数学还真不那么一样,数学因为 pure 反而不计较 normal order 还是 applicative order 什么的幺蛾子。
@
forblackking molvqingtai 哪里看出的高阶函数?
@
misaka19000 @
jianleer 谁规定函数调用非得跟栈扯上关系的?
@
persimmon 好吧,非得跟栈有一腿是吧……但这例子里一坨 tail call 凭什么就得加深……
@
XXneet 跟有没有类型有几毛钱关系? UTLC 活该哭晕在厕所咯?
@
zagreb 请避免“函数表达式”这种数学过头而引起误导的说法。这种说法中求值过程是被忽略的,只关心求值结果,暗示替换没有副作用而不改变语义。这对大多数语言根本不适用。另外,至少还得分清函数作为表达式和函数调用作为表达式的区别。
@
laqow 不巧,传统 LISP 的 application 外面还要套(),并不长得这个样子;还有各种 special form 开洞。
@
zmj1316 C++当然也有这规矩,[intro.execution]/11。