You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.4 KiB

前言

这是我推荐的 Haskell 学习路线,从助人的经验总结而来。书籍 Haskell Book 的作者之一提供了一个推荐的资料清单。

别在不懂的地方打转,先继续读下去!

社群

IRC 频道Freenode 上的 #haskell-beginners

IRC web 版客户端

Haskell 邮件群组

社群参与原则

阅读我们的社群参与原则,了解在 IRC 频道应遵守的原则。不明显的攻讦行为将会收到警告。请明确,这个频道是专为学习和教授 Haskell 的人准备的。

安装 Haskell

通过 Stack 使用 Haskell

获取 Stack 以安装 GHC构建你的项目。

如果你不了解 Stack又需要它的概述可观看视频:全面的 Stack 新手指南

以及,不要安装 Haskell Platform

直接使用 Stack不要遵循 Haskell.org 里面的说明。

为什么不使用 platform?

https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html

我该如何学习 Haskell

核心推荐是,阅读 cis194 课程2013 年秋冬学期版)的讲义并完成所有习题和作业,然后是 FP 课程。它们都在下方列出。其他的都可视为可选项,列出来仅用于资料指南。

Haskell 编程的第一要义

@dmvianna 让我转达,下面列出的只是推荐资源中免费的部分。如果你愿意看书,衷心推荐我们自己写的 Haskell Book!如果你因为某些原因买不起该书,请使用支持页面里的联系方式发邮件给我们。

Haskell Book 书包含了这里列出的全部基础资料(包含的内容)

Yorgey 的 cis194 课程

如果你不用 Haskell Book先学习本课程,它是最好的免费 Haskell 入门介绍。

从这里在线获取。

Brent Yorgey 的课是我目前所知中最好的。它之所以好是因为不仅教基础知识还教解析器组合子parser combinators

如果你不是程序员,或缺乏经验,那么这门课可能没这么适合。建议你从 Thompson 的这本书开始,然后再转到 cis194。


FP 课程

完成 Yorgey 的 cis194 课程之后,我们推荐把这门课作为后续学习。

这门课可从 github 获取

通过实现 cis194 中介绍过的种种抽象表述,这门课让你对 Haskell 形成更深入的了解。这样的练习对于熟悉 Haskell 中日常面对的 Functor/Applicative/Monad 等等至关重要。先学 cis194然后是 FP是这整篇 Haskell 学习导览的核心,也是我教每个人 Haskell 的方式。


在 cic194 和 FP 课程之后的补充课程

该课程提供更多中级材料

cs240h 可从线上获取

这是 Bryan O'Sullivan 在斯坦福所教课程的线上版。如果你不知道他是谁,去翻翻 Haskell 的库吧!几乎一半以上常用的套件都有他的名字。特别值得一提的是关于 phantom types、information flow control、language extensions、concurrency、pipes 和 lenses 的模块(如果你已经完成了 Yorgey 的课程,就能理解我在说什么)。


补充资料

这些资料不像 cis194 和 FP 课程那样经过了学习者的共同把关和评测,它们的链接都在主题清单里,方便你知道从哪里开始。它们涉及中高级的概念和其他主题/领域,比如工具软件和文本编辑器。

译著

补充资料部分的旧版中译可从这里获得。

对话记录

本储存库中

里面包含相当重要而有帮助的信息,可协助你深入了解许多不同的主题。