我有兴趣在自己的时间(而不是通过课程)学习 Haskell,但我怀疑我的数学背景可能不足以理解重要的语言概念 (TBD)。
我有一年的大学微积分(单变量),但没有离散数学或逻辑。
我会在数学上遇到空白吗?
你为什么不试试看呢?
Haskell 的设计借鉴了范畴论(monads、arrows、transformers)等领域的数学思想,但大多数 Haskell 程序员只了解这些与编程的关系:-)
你不需要任何特别高级的数学来学习 Haskell,除了能够在数学意义上思考一个函数(比如,“a map f: X -> Y”而不是作为执行某些操作的“子程序”)动作),能够考虑高阶函数(例如,说“'compose f g' 是一个在输入 x 处具有值 f(g(x)) 的函数”)等等。Haskell 的符号非常干净,所以这也不应该是一个问题。
Haskell 的重要概念对所有纯函数式语言也很重要,我相信不一定需要高等数学。
考虑到你已经有一年的微积分,你会没事的。
虽然有 lambda 演算的背景可能很好,但这对 Haskell 来说并不是硬性要求。
你会没事的。水是温暖的。跳进去!
数学?嗯,没有。你根本不需要数学(就像代数、微积分、几何这个词的常识中的数学),但你确实需要一个逻辑(逻辑==数学?)大脑来编程,就像使用任何其他语言一样
大约八年前,我自学了 Haskell,只学过商业微积分,我认为不需要任何数学。
我相信 Haskell 会教给你很多逻辑和离散数学,然后学习 Haskell,你也会获得一些数学技能 :)
你知道的代数和范畴论越通用越好,因为 Haskell 从这些数学分支(即 Monad、代数类型系统、箭头和函子)中汲取了很多东西。