Evaluation strategy上的wiki页面讨论了评估函数参数的不同策略,但我想知道函数本身与其参数之间的顺序是什么。
以CoffeeScript为例:
p = console.log
(do -> p 1; p) (do -> p 2; 4), (do -> p 3; 5)
输出结果为:
1
2
3
4 5
根据输出,我们知道首先评估函数本身,然后从左到右评估所有参数。
在所有参数之后评估函数似乎也太疯狂了,以便输出变为:
2
3
1
4 5
任何语言都这样做?如果没有,为什么不呢?我在哪里可以找到更多相关信息? (我应该使用哪个关键字进行搜索?)