Skip to content

函数式编程

MIT6.001: Structure And Interpretation Of Computer Programs

  • 所属大学:MIT
  • 编程语言: Scheme

大名鼎鼎的「计算机程序的构造与解释」,笔者认为这是每个程序员都应该学习的课程,它真正能教会你编程,而不只是写代码。如果想深刻理解计算机程序设计,那么这门课不容错过。

CS3110: OCaml Programming Correct + Efficient + Beautiful

  • 所属大学:Cornell
  • 编程语言:OCaml

CS3110 不仅局限于函数式编程,更是将理论和实用充分结合。课程内容更进一步,涵盖了 OCaml 语言基础,数据结构和算法,测试开发,形式证明,语言特性实现等诸多内容。而且内容之间并不割裂,而是递进和互补,非常值得学习。

Haskell MOOC

  • 所属大学:University of Helsinki
  • 编程语言:Haskell

函数式编程正在越来越多的融合入现代编程语言。JavaScript 的 Promises、Swift 中的 ADT 和 MoonBit 语言的函数式循环等。在学习这些内容时,我们得以窥探函数式编程的一点魅力,但只见树木不见森林,为真正了解函数式编程的全貌, 学习 Haskell 是一个不可避的槛。

虽然这门课的名字是 Haskell,但它的核心内容是函数式编程思想。就像学习面向对象程序设计,大概率不会选择 Java 之外的语言。

学习 Haskell,但重点不在于使用它。这门课会让你用刚刚够用的 Haskell 语法,刚刚够用的库函数,一丁点的工具,去解释核心的程序语义,也就是函数式编程的核心思想,也会涉及到 Monoid / Functor / Monad / Applicative 一些相对高级的抽象。

推荐书籍 / 论文 / 视频

函数式编程语言通常非常理论化,读完一两本入门书籍之后可能还只是了解冰山一角。读论文也是不可避免的,以下会列出一些优秀的参考资料,读者在有一定基础之后可以自行选择喜欢的课题学习。