【问题标题】:How much math do I need to become productive in Haskell?我需要多少数学才能在 Haskell 中变得富有成效?
【发布时间】:2008-11-20 01:48:03
【问题描述】:

我有兴趣在自己的时间(而不是通过课程)学习 Haskell,但我怀疑我的数学背景可能不足以理解重要的语言概念 (TBD)。

我有一年的大学微积分(单变量),但没有离散数学或逻辑。

我会在数学上遇到空白吗?

【问题讨论】:

  • 如果您曾经尝试过 Haskell,请在此处添加评论,说明它是如何进行的 - 以及遇到的困难是否与缺乏数学背景有关。

标签: haskell theory


【解决方案1】:

你为什么不试试看呢?

Haskell 的设计借鉴了范畴论(monads、arrows、transformers)等领域的数学思想,但大多数 Haskell 程序员无论如何都只了解这些与编程的关系 :-)

你不需要任何特别高级的数学来学习 Haskell,除了能够在数学意义上思考一个函数(比如,“a map f: X -> Y”而不是“subroutine”执行某些操作),能够考虑高阶函数(例如,说“'compose f g' 是一个在输入 x 处具有值 f(g(x)) 的函数”)等等。 Haskell 的符号非常干净,所以这也不成问题。

【讨论】:

    【解决方案2】:

    Haskell 的重要概念对所有纯函数式语言也很重要,我相信不一定需要高等数学。

    考虑到你已经学了一年微积分,你会没事的。

    虽然有 lambda 演算的背景可能很好,但对 Haskell 来说并不是硬性要求。

    【讨论】:

      【解决方案3】:

      你会没事的。水是温暖的。跳进去!

      【讨论】:

        【解决方案4】:

        数学?嗯,没有。你根本不需要数学(就像数学中代数、微积分、几何这个词的常识),但你确实需要一个逻辑(逻辑==数学?)大脑来编程,就像使用任何其他语言一样

        【讨论】:

          【解决方案5】:

          大约八年前,我自学了 Haskell,只学习过商业微积分,我认为不需要任何数学。

          【讨论】:

            【解决方案6】:

            我相信 Haskell 教会了你很多逻辑和离散数学,所以学习 Haskell,你也会获得一些数学技能:)

            【讨论】:

              【解决方案7】:

              您了解的通用代数和范畴论越多越好,因为 Haskell 从这些数学分支(即 Monad、代数类型系统、箭头和函子)中吸取了很多。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2021-10-13
                • 1970-01-01
                • 2020-10-02
                • 2020-01-16
                • 1970-01-01
                • 1970-01-01
                • 2016-03-05
                相关资源
                最近更新 更多