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.

96 lines
4.4 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 前言
这是我推荐的 Haskell 学习路线,从助人的经验总结而来。书籍 [Haskell Book](http://haskellbook.com/) 的作者之一提供了一个推荐的资料清单。
#### *别在不懂的地方打转,先继续读下去!*
## 社群
IRC 频道Freenode 上的 `#haskell-beginners`
IRC web 版[客户端](http://webchat.freenode.net/)。
Haskell [邮件群组](https://wiki.haskell.org/Mailing_lists)。
### 社群参与原则
阅读我们的[社群参与原则](coc.md),了解在 IRC 频道应遵守的原则。不明显的攻讦行为将会收到警告。请明确,这个频道是专为学习和教授 Haskell 的人准备的。
# 安装 Haskell
## 通过 Stack 使用 Haskell
获取 [Stack](http://haskellstack.org) 以安装 GHC构建你的项目。
如果你不了解 Stack又需要它的概述可观看[视频:全面的 Stack 新手指南](https://www.youtube.com/watch?v=sRonIB8ZStw)。
## 以及,不要安装 Haskell Platform
直接使用 Stack不要遵循 Haskell.org 里面的说明。
### 为什么不使用 platform?
https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html
# 我该如何学习 Haskell
核心推荐是,阅读 cis194 课程2013 年秋冬学期版)的讲义并完成所有习题和作业,然后是 FP 课程。它们都在下方列出。其他的都可视为可选项,列出来仅用于资料指南。
## Haskell 编程的第一要义
[@dmvianna](https://github.com/dmvianna) 让我转达,下面列出的只是推荐资源中*免费*的部分。如果你愿意看书,衷心推荐我们自己写的 [Haskell Book](http://haskellbook.com/)!如果你因为某些原因买不起该书,请使用[支持页面](http://haskellbook.com/support.html)里的联系方式发邮件给我们。
### Haskell Book 书包含了这里列出的全部基础资料(包含的内容)
## Yorgey 的 cis194 课程
> 如果你不用 Haskell Book就*先学习*本课程,它是最好的免费 Haskell 入门介绍。
从这里[在线](http://www.seas.upenn.edu/~cis194/spring13/lectures.html)获取。
[Brent Yorgey](https://byorgey.wordpress.com) 的课是我目前所知中最好的。它之所以好是因为不仅教基础知识还教解析器组合子parser combinators
如果你不是程序员,或缺乏经验,那么这门课可能没这么适合。建议你从
[Thompson 的这本书](http://www.haskellcraft.com/craft3e/Home.html)开始,然后再转到 cis194。
---
## FP 课程
> 完成 Yorgey 的 cis194 课程之后,我们推荐把这门课作为后续学习。
这门课可从 github [获取](https://github.com/bitemyapp/fp-course)。
通过实现 cis194 中介绍过的种种抽象表述,这门课让你对 Haskell 形成更深入的了解。这样的练习对于熟悉 Haskell 中日常面对的 Functor/Applicative/Monad 等等至关重要。先学 cis194然后是 FP是这整篇 Haskell 学习导览的核心,也是我教每个人 Haskell 的方式。
---
## 在 cic194 和 FP 课程之后的补充课程
> 该课程提供更多中级材料
cs240h 可从线上获取
* [2014 年春夏学期版](http://www.scs.stanford.edu/14sp-cs240h/)
* [2016 年秋冬学期版](http://www.scs.stanford.edu/16wi-cs240h/)
这是 [Bryan O'Sullivan](https://github.com/bos) 在斯坦福所教课程的线上版。如果你不知道他是谁,去翻翻 Haskell 的库吧!几乎一半以上常用的套件都有他的名字。特别值得一提的是关于 phantom types、information flow control、language extensions、concurrency、pipes 和 lenses 的模块(如果你已经完成了 Yorgey 的课程,就能理解我在说什么)。
---
# 补充资料
这些资料不像 cis194 和 FP 课程那样经过了学习者的共同把关和评测,它们的链接都在[主题清单](/specific_topics.md)里,方便你知道从哪里开始。它们涉及中高级的概念和其他主题/领域,比如工具软件和文本编辑器。
## 译著
补充资料部分的旧版中译可从[这里](https://github.com/bitemyapp/learnhaskell/blob/213dcb9decdce7f6f472247f0d4b82447e015f1d/guide-zh_CN.md#---do--list-comprehension%E7%AE%80%E4%BE%BF%E8%AF%AD%E6%B3%95%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88)获得。
## 对话记录
> 在[本储存库中](dialogues.md)。
里面包含相当重要而有帮助的信息,可协助你深入了解许多不同的主题。