Erlang 表达式的求值机制如下。
对项式求值得到其本身:
浮点数的输出格式可能与它们的输入格式不完全一致。当表达式与项式同构且表达式中的函数调用都已求值完毕时,表达式将被求值为项式。应用一个函数时其参数首先被求值。
其中APPLY表示一个将参数应用到函数的函数。
函数调用的写法如以下实例所示:
带冒号形式的函数将在和模块相关的章节中解释。调用没有参数的函数必须加上一对空的小括号(以此与原子式相区别)。
在对形如[f(a),g(b),h(k)]的表达式进行求值时,f(a)、g(b)和h(k)的求值顺序是不确定的。
如果f(a)、g(b)和h(k)的求值过程没有副作用(即不发送消息、不创建进程等等),则[f(a),g(b),h(k)]的值与求值顺序无关。这种属性叫作引用透明性[5]。
BIF apply(Mod,Func,ArgList)和apply({Mod,Func},ArgList)用于将模块Mod中的函数Func应用到参数列表ArgList。