计算语言中的求值顺序问题
1. 求值顺序的基本概念
在计算语言设计中,定义求值顺序是一个长期存在的问题。在设计良好的语言(如Wolfram语言)中,很多时候求值顺序并非关键因素,但在组合子和物理新模型中,求值顺序变得至关重要。
1.1 Wolfram语言中的求值顺序示例
以 Length[Join[{a, b}, {c, d, e}]] 为例,其求值过程如下:
In[]:= Length[Join[{a, b}, {c, d, e}]]
Out[]= 5
实际计算时,先计算 Join[{a, b}, {c, d, e}] :
In[]:= Join[{a, b}, {c, d, e}]
Out[]= {a, b, c, d, e}
然后将结果作为参数传递给 Length 函数,得到最终结果5。一般在Wolfram语言中,计算 f[g[x]] 时,先计算 x ,再计算 g[x] ,最后计算 f[g[x]] 。不过,也有特殊情况,例如定义 x = 1 后再定义 x = 2 ,若先对 x 求值会得到无意义的 S
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



