无点风格和部分应用的功能

时间:2018-09-05 14:46:35

标签: haskell pointfree partial-application

在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,因为在调用它的那一刻,您需要像第一个示例那样使用自变量。

那么,它们之间的真正区别是什么?

但是,对我而言,最终还是一样。

1 个答案:

答案 0 :(得分:3)

无点样式-一种函数实现样式

部分应用的功能-一种创建新功能的技术

无点使用部分应用的功能,但还有其他技术和组合器https://wiki.haskell.org/Pointfree

另一种常见的Pointfree技术是函数组合

plus2 = increment . increment