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.

93 lines
4.5 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 书](https://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](https://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
推荐的核心是阅读 cis1940 课程2013 年春季学期版)的讲解并完成所有习题和作业,然后是 FP 课程。下方列出了两门课的链接。其他的所有内容都可以视为选学内容,我们就在这里提一下是为了让你知道该到哪里找到它们。
## Haskell 编程:从第一原理开始
[@dmvianna](https://github.com/dmvianna) 让我告诉你,下面列出的都只是*免费*的推荐资料。如果你愿意看书,衷心推荐我们自己写的 [Haskell 书](https://haskellbook.com/)!如果你因为某些原因买不起这本书,请使用[支持页面](https://haskellbook.com/support.html)里的联系方式发邮件给我们。
### Haskell Book 书包含了这里列出的全部基础资料(包含的内容)
## Yorgey 的 cis1940 课程
> 如果/你不打算买那本 Haskell 书,那就*先学习*本课程,它是最好的免费 Haskell 入门介绍。
[在线](https://www.seas.upenn.edu/~cis1940/spring13/lectures.html)获取。
[Brent Yorgey](https://byorgey.wordpress.com) 的课程是迄今为止我所发现的最好的课程。 这门课程非常有价值,因为它不仅会教你编写基本的 Haskell而且还会帮助你了解语法分析组合子。
只有当你不是程序员,或者是个缺乏经验的程序员时,你才不应该从 cis1940 开始学。 如果你真的是这样,请从[Thompson 的这本书](https://www.haskellcraft.com/craft3e/Home.html)开始学并过渡到 cis1940。
---
## 函数式编程课程
> 我们推荐你在完成 Yorgey 的 cis1940 课程之后再学习这门课。
在 GitHub [这里](https://github.com/bitemyapp/fp-course)获取。
这门课会让你直接体验用代码实现 cis1940 中介绍过的各种抽象并加深你对它们的理解。这样的练习对于让你熟悉 Haskell 中 Functor/Applicative/Monad 等等概念的日常使用至关重要。先学 cis1940然后学 FP是我这篇指南的核心也是我教大家 Haskell 的方式。
---
## cis1940 和 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 应用程序都总会需要的那些库,其中一半的库上都写着他的名字。如果你已经学过 Yorgey 的课程的话,要特别注意讲解幽灵类型、信息流控制、语言扩展、并发、管道和透镜的章节。
---
# 补充资料
这些资料不像 cis1940 和 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)里。
这些对话真的相当重要而会对你很有帮助,想深入了解各种主题请看这里。