Add Haskell MOOC (#356)

This commit is contained in:
showthesunli 2022-12-26 23:49:06 +08:00
parent 9194c47455
commit 7a29fd3bb1
2 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,38 @@
# Haskell MOOC
## 课程简介
- 所属大学University of Helsinki
- 先修要求:无
- 编程语言Haskell
- 课程难度:🌟🌟
- 预计学时:因人而异
函数式编程正在越来越多的融合入现代编程语言。Java的StreamsJavaScript的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) 中。(非常不建议在作业时,参考别人的实现)

View file

@ -156,6 +156,7 @@ nav:
- "Stanford CS106L: Standard C++ Programming": "编程入门/CS106L.md" - "Stanford CS106L: Standard C++ Programming": "编程入门/CS106L.md"
- "Stanford CS110L: Safety in Systems Programming": "编程入门/CS110L.md" - "Stanford CS110L: Safety in Systems Programming": "编程入门/CS110L.md"
- "AmirKabir University of Technology AP1400-2: Advanced Programming": "编程入门/AUT1400.md" - "AmirKabir University of Technology AP1400-2: Advanced Programming": "编程入门/AUT1400.md"
- "Haskell MOOC": "编程入门/Haskell-MOOC.md"
- 电子基础: - 电子基础:
- "EE16A&B: Designing Information Devices and Systems I&II": "电子基础/EE16.md" - "EE16A&B: Designing Information Devices and Systems I&II": "电子基础/EE16.md"
- "UCB EE120 : Signal and Systems": "电子基础/signal.md" - "UCB EE120 : Signal and Systems": "电子基础/signal.md"