mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-06-27 03:47:03 +08:00
38 lines
2 KiB
Markdown
38 lines
2 KiB
Markdown
# Haskell MOOC
|
||
|
||
## 课程简介
|
||
|
||
- 所属大学:University of Helsinki
|
||
- 先修要求:无
|
||
- 编程语言:Haskell
|
||
- 课程难度:🌟🌟
|
||
- 预计学时:因人而异
|
||
|
||
函数式编程正在越来越多的融合入现代编程语言。Java的Streams,JavaScript的Promises,以及在ECMAScript草案阶段的Record&Tuple。在学习这些内容时,我总是感觉我在死记它们这些api的行为,虽然能够使用它们写出一些程序,但总感觉不到掌握了它们。究其原因,它们为什么存在?它们为什么是这样的?设计它们的思想是什么?学完函数式编程会给你答案。
|
||
|
||
虽然这门课的名字是Haskell,但它的核心内容是函数式编程思想。就像学习面向对象程序设计,大概率不会选择Java之外的语言。
|
||
|
||
学习Haskell,但不会去用它。这门课会让你用刚刚够用的Haskell语法,刚刚够用的库函数,一丁点的工具,去解释核心的程序语义,也就是函数式编程的核心思想。这不会让你浪费时间陷入语言细节以及语言生态中,我觉得它是这门课的最大优势。
|
||
|
||
这门课覆盖的内容:
|
||
|
||
- Pure Function
|
||
- Lazy Evaluation
|
||
- Strongly Typed
|
||
- Type Inferred
|
||
- Curry
|
||
- Monoid/Functor/Monad/Applicative
|
||
|
||
如果你有编程经验,课程的Part1很简单,难度集中在Part2的十三章之后。课程的练习很棒,它有一种在做CS61a练习的感觉。练习的注释中有足够的提示,作业在你提交之后会给你标准答案,你还可以在官方的Telegram中提问或与他人讨论。
|
||
|
||
## 课程资源
|
||
|
||
- 课程网站:<https://haskell.mooc.fi/>
|
||
- 课程视频:无
|
||
- 课程教材:<https://haskell.mooc.fi/>
|
||
- 课程作业:<https://github.com/moocfi/haskell-mooc>
|
||
- 社区:<https://t.me/haskell_mooc_fi>
|
||
|
||
## 资源汇总
|
||
|
||
@showtheunli 在学习这门课中用到的所有资源和作业实现都汇总在 [showthesunli/haskell-mooc - GitHub](https://github.com/showthesunli/haskell-mooc) 中。(非常不建议在作业时,参考别人的实现)
|