我对 Haskell 点运算符的事情感到困惑。我所读到的是,它基本上创建了一个由其他 2 个函数组成的新函数。例如。:

f(g x) = f . g

(省略参数)

但是,如果我也省略了点会有什么区别?喜欢:
f . g =? f g

因为在这两种情况下 g 都将应用于传递给它的参数,然后 f 将应用于该结果。

所以我没有看到这两者之间的区别,但也许有区别,或者当它更复杂时会有区别?但我现在看不到它,所以如果有人能帮助我解决这个问题,我将不胜感激!

此致,
天飞。

最佳答案

表达方式

h = f . g

创建一个新函数 h(...),即 f(g(...))。这甚至可以在不调用 f 的情况下完成。然而,
h = f g

g 传递给 f 并将其结果分配给 h 。在这种情况下,在评估 f 时会调用 h

关于Haskell 点运算符 : what difference does it make exactly?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26107653/

10-09 15:54