为什么在Haskell充满积分时,无点样式称为点免费? “无点”一词来自哪里?

时间:2014-02-25 08:38:58

标签: haskell coding-style pointfree

我目前正在阅读Learn You a Haskell for Great Good,我发现了#34; point-free style"在第85页上,如下所示。但是,fn功能已满点!这让我很困惑。

  • 为什么这种写作风格被称为"无点"几时 完整有分数?

  • 我应该如何理解这个概念? "点 - 自由"在什么意义上?

  • 术语"无点样式"起源于?也许来自一个 函数组成用空格表示的语言?

PS:到目前为止,这是这本优秀书中唯一令人困惑的部分(即到目前为止我读过的前85页)。

enter image description here

2 个答案:

答案 0 :(得分:18)

  

但是免费积分更多!

     

一个常见的误解是   无点样式的“点”是(。)运算符(函数   组成,作为ASCII符号),使用相同的标识符   小数点。这是错的。该术语起源于拓扑,a   数学分支,它与由点组成的空间一起工作,和   这些空间之间的功能。所以一个'无点'的定义   函数是没有明确提到点(值)的函数   功能作用的空间。在Haskell,我们的“空间”是   某种类型,'点'是值。在声明中f x = x + 1我们   根据对任意点x的动作来定义函数f。   与无点版本对比:f =(+ 1)其中有   没有提到函数的作用值。

来自haskellwiki

答案 1 :(得分:7)

基本上,每个局部变量都是一个“点”。因此,没有局部变量的函数是“无点”的。