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

jhe*_*dus 9 haskell coding-style pointfree

我目前正在阅读" 了解你是一个很好的Haskell",我在第85页上看到了"无点样式 " 的概念,如下所示.但是,fn功能充满了积分!这让我很困惑.

  • 为什么这种写作风格在点时会被称为"无点" ?

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

  • "无点风格"一词来自哪里?也许来自一个用空间表示功能组成的语言?

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

在此输入图像描述

cnd*_*cnd 18

但是免费积分更多!

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

来自haskellwiki


Mat*_*hid 7

基本上,每个局部变量都是"点".因此,没有局部变量的函数是"无点"的.