![]() |
1
10
回答原来的问题:为什么函数组合是从右到左组成的?
正向功能组成:
这种调用函数的方式称为 咖喱 ,其工作原理如下:
因此,函数是由JS解释器从左到右组合和解释的,而在执行时,它们的值从右到左流经每个函数。简而言之:先由外向内,然后由内向外。
但是
结论: 从右到左的顺序是传统的/传统的,但不是直观的。 |
|
2
3
您的问题实际上是关于函数组合运算符定义中参数的顺序,而不是关于右关联或左关联。在数学中,我们通常写“f o g”(相当于您定义中的comp(f)(g))来表示接受x并返回f(g(x))的函数。因此,“f o(g o h)”和“(f o g)o h”是等价的,都表示将每个参数x映射到f(g(h(x))的函数。 也就是说,我们有时写f;g(相当于代码中的comple(f)(g))表示将x映射到g(f(x))的函数。因此,两者(f;g);h和f;(g;h)表示x到h(g(f(x))的函数映射。 参考文献: https://en.wikipedia.org/wiki/Function_composition#Alternative_notations |