无点风格和部分应用功能
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
在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