无点风格和部分应用功能

point-free style and partially applied functions

在Haskell中有两个概念看起来不太一样,但我不明白其中的区别。他们是 "point-free style" 和 "partially applied functions".

对于无点样式,我将得到 this 示例:

instead of: sum xs = foldr (+) 0 xs
we can use: sum = foldr (+) 0

因为xs在两边所以可以省略

对于部分应用的函数,我将得到 this 示例:

increment = add 1   

可以是increment n = add 1 n,因为在调用的时候,需要像第一个例子一样,用参数来做。

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

但是,对我来说,最终还是一样。

Pointfree 风格——函数实现的一种风格

部分应用函数 - 这是一种创建新函数的技术

Point-free 使用部分应用函数,但还有其他技术和组合器 https://wiki.haskell.org/Pointfree

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

plus2 = increment . increment