【问题标题】:Why is the point-free style called point free in Haskell when it is full with points? Where does the term "point-free" originates from?为什么 Haskell 中的无点风格在充满点的情况下称为无点? “无点”一词从何而来?
【发布时间】:2014-02-25 08:38:58
【问题描述】:

我目前正在阅读Learn You a Haskell for Great Good,我在第 85 页遇到了“point-free style”的概念,如下所示。但是,fn 函数满分!这让我很困惑。

  • 为什么这种写函数的风格叫“无点”呢? 有积分?

  • 我应该如何理解这个概念?什么意义上的“无点”?

  • “无点风格”一词的出处是什么?也许从一个 函数组合用空格表示的语言?

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

【问题讨论】:

标签: haskell coding-style pointfree


【解决方案1】:

但是pointfree有更多的积分!

一个常见的误解是 pointfree 风格的 'points' 是 (.) 运算符(函数 组合,作为 ASCII 符号),它使用与 小数点。这是错误的。该术语起源于拓扑学,一个 处理由点组成的空间的数学分支,以及 这些空间之间的功能。所以一个“无积分”的定义 函数是一个没有明确提及点(值)的函数 函数作用的空间。在 Haskell 中,我们的“空间”是 某种类型,“点”是值。在声明 f x = x + 1 中,我们 根据对任意点 x 的作用定义函数 f。 将此与无积分版本进行对比: f = (+ 1) 其中有 没有提及函数作用的值。

来自haskellwiki

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      相关资源
      最近更新 更多