首页 > 解决方案 > 无点样式和部分应用函数

问题描述

在 Haskell 中有两个概念看起来并不相同,但我不明白它们的区别。它们是“无点风格”和“部分应用函数”。

对于无点样式,我将获得以下示例:

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

因为xs是两边我们可以省略它。

对于部分应用的功能,我将得到这个例子:

increment = add 1   

这可能是increment n = add 1 n,因为在调用它的那一刻,您需要使用参数来执行它,就像第一个示例一样。

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

但是,对我来说,最后都是一样的。

标签: haskellpointfreepartial-application

解决方案


Pointfree style - 函数实现的一种风格

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

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

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

plus2 = increment . increment

推荐阅读