Skip to content

Commit

Permalink
[TRANSLATE] Haskell MOOC (#376)
Browse files Browse the repository at this point in the history
* create haskell-mooc.en.md

* translation done

* fix a typo in CN version

* translation done

* update

* fix typo
  • Loading branch information
LingkKang committed Jan 4, 2023
1 parent 64934f6 commit 2c4cc3a
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
38 changes: 38 additions & 0 deletions docs/编程入门/Haskell-MOOC.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Haskell MOOC

## Descriptions

- Offered by: University of Helsinki
- Prerequisites: None
- Programming Languages: Haskell
- Difficulty: 🌟🌟
- Class Hour: Varying according to the learner

Functional programming is increasingly being integrated into modern programming languages. Streams in Java, Promises in JavaScript, and Record & Tuple in the draft phase of ECMAScript... When I was learning these things, I always felt like I was memorizing the behaviours of their API, and although I was able to write some programs using them, I never felt like I had mastered them. Why do they exist? Why are they like that? What is the idea behind their design? Learning functional programming will give you the answer.

Its core ingredient is functional programming. Just like Java is probably the default choice for teaching object-oriented programming.

This course will teach just enough Haskell syntax, library functions, and a small number of tools to explain the core program semantics and the core idea of functional programming. This will save you time not getting bogged down in the details of the language and its ecology, which I think is the biggest advantage of the course.

Topics covered in the course:

- Pure Function
- Lazy Evaluation
- Strongly Typed
- Type Inferred
- Curry
- Monoid / Functor / Monad / Applicative

If you have some programming experience, part 1 of the course is very easy. Most of the difficulties lie in part 2, after chap 13. Its exercises are great, which can give you a feeling of doing exercise of [CS61A](https://csdiy.wiki/%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/CS61A/). There are enough hints in the comments and the solutions will be given to you after submission, and you can ask questions or discuss them with others in the official Telegram community.

## Course Resources

- Course Website: <https://haskell.mooc.fi/>
- Recordings: None
- Textbooks: <https://haskell.mooc.fi/>
- Assignments: <https://github.com/moocfi/haskell-mooc>
- Community: <https://t.me/haskell_mooc_fi>

## Personal Resources

All the resources and assignments used by @showtheunli in this course are maintained in [showthesunli/haskell-mooc - GitHub](https://github.com/showthesunli/haskell-mooc). (It is highly discouraged to refer to other people's implementations when working on assignments.)
2 changes: 1 addition & 1 deletion docs/编程入门/Haskell-MOOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

虽然这门课的名字是 Haskell,但它的核心内容是函数式编程思想。就像学习面向对象程序设计,大概率不会选择 Java 之外的语言。

学习 Haskell,但不会去用它。这门课会让你用刚刚够用的 Haskell 语法,刚刚够用的库函数,一丁点的工具,去解释核心的程序语义,也就是函数式编程的核心思想。这不会让你浪费时间陷入语言细节以及语言生态中,我觉得它是这门课的最大优势。
学习 Haskell,但重点不在于使用它。这门课会让你用刚刚够用的 Haskell 语法,刚刚够用的库函数,一丁点的工具,去解释核心的程序语义,也就是函数式编程的核心思想。这不会让你浪费时间陷入语言细节以及语言生态中,我觉得它是这门课的最大优势。

这门课覆盖的内容:

Expand Down

0 comments on commit 2c4cc3a

Please sign in to comment.