Haskell函数组合(.)和函数应用程序($)成语:正确使用

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

(.)($)操作员

当编写一个由其他函数组成的函数时,编写它如下:

f = g . h

但是,当将某些内容应用到这些函数的末尾时,我会这样写:

k = a $ b $ c $ value

但这本书会这样写:

k = a . b . c $ value

使用书籍的方式是否比使用所有($)符号好得多? 还是有没有一些最好的做法,我没有得到? 或者它是多余的,我不应该担心它呢?
提问于
用户回答回答于

是否有理由使用比使用所有($)符号更好的书籍方式?

.$。因此,这本书使用了f . g . h $ x语法。

用户回答回答于

它们确实是等同的:请记住,$运算符基本上什么都不做。f $ x评估为f x,目的$是它的固定行为:右关联和最小优先级。移除$使用括号进行分组而不是使用infix优先级,代码片段如下所示:

k = a (b (c (value)))

k = (a . b . c) value

选择.的版本$版本是相同的理由,更喜欢这两个而不是上面括号的版本:审美吸引力。

虽然,有些人可能想知道,使用infix运算符而不是括号是否基于某种潜意识的冲动,以避免与Lisp有任何相似之处(开玩笑)。

扫码关注云+社区