我正在根据在线课程学习 sicp,但对它的讲义感到困惑。在讲义中,applicative order 似乎等于 cbv 和 normal order 等于 cbn。
但是wiki指出,除了求值顺序(从左到右,从右到左,或者同时),applicative order和cbv是有区别的:
与按值调用不同,应用顺序评估在应用函数之前尽可能地减少函数体内的术语。
我不明白减少是什么意思。在进入函数计算之前,应用顺序和 cbv 都不会获得变量的确切值。
而对于正常的顺序和cbv,根据wiki,我更加困惑。
相比之下,按名称调用策略不会在未应用的函数体内求值。
我猜这是否意味着正常顺序会在未应用的函数体内进行评估。怎么会这样?
非常感谢?
evaluation scheme programming-languages sicp operator-precedence