首页 > Erlang并发教程 > 3.11 Erlang并发编程-求值顺序
2013
11-05

3.11 Erlang并发编程-求值顺序

BACK TOP文章索引

  1. 求值顺序
  2. 共0条评论

求值顺序

函数参数的求值顺序是不确定的。例如,f({a},b(),g(a,h(b),{f,X}))表示一个函数调用。对函数f的调用有三个参数:{a}b()g(a,h(b),{f,X})。第一个参数是一个只包含一个原子项a的元组。第二个参数是一个函数调用b()。第三个参数是函数调用g(a,h(b),{f,X})。在对f/3求值时,对b/0g/3的求值顺序是不确定的,不过h(b)g/3被求值。对b()h(b)的求值顺序也是不确定的。

在对形如[f(a), g(b), h(k)]的表达式进行求值时,f(a)g(b)h(k)的求值顺序是不确定的。

如果f(a)g(b)h(k)的求值过程没有副作用(即不发送消息、不创建进程等等),则[f(a), g(b), h(k)]与求值顺序无关。这种属性叫作引用透明性


留下一个回复

你的email不会被公开。