在Haskell中,有两个概念看起来并不相同,但是我不明白它们之间的区别。它们是“无点样式”和“部分应用的函数”。
对于无点样式,我将以this为例:
instead of: sum xs = foldr (+) 0 xs
we can use: sum = foldr (+) 0
因为xs
的两面都可以省略。
对于部分应用的函数,我将获得this示例:
increment = add 1
它可能是increment n = add 1 n
,因为在调用它的那一刻,您需要像第一个示例那样使用自变量。
那么,它们之间的真正区别是什么?
但是,对我而言,最终还是一样。
答案 0 :(得分:3)
无点样式-一种函数实现样式
部分应用的功能-一种创建新功能的技术
无点使用部分应用的功能,但还有其他技术和组合器https://wiki.haskell.org/Pointfree
另一种常见的Pointfree技术是函数组合
plus2 = increment . increment