Logo
Section 1 / 8

在深入之前

了解课程安排,并初步认识课程的先修要求。

导入

在深入之前

了解课程安排,并初步认识课程的先修要求。

本课程的动机

互联网上有大量视频、博客文章和文章讨论函数式编程(FP) 的概念。此外,关于 Haskell 的书籍有很多,也有一些优秀的书籍在其他语言中讲解这些概念。

然而,大多数文章和视频仅涵盖函数式编程的基础概念,其余内容则留待读者自行探索。部分书籍偶尔会进一步解释如何应用这一范式,但很少见到具体且全面的示例,作为基础但实用的项目来介绍。

...
目标

因此,我们将采取更具雄心的方式。本课程将提供一份实用指南,用易于理解的语言解释最重要的函数式编程概念,并展示如何实际运用它们。

你应该具备的知识

本课程面向具有面向对象编程思维的学习者,需要一定的 JavaScript 经验。对于完全的初学者来说,本课程可能会有一定挑战性,因为我们会跳过一些基础概念和想法。不过,你无需多年专业经验或函数式编程知识即可跟上进度。课程中少数章节会使用亚马逊云服务(AWS),但即使没有云计算背景,你也能够顺利学习。

...
AWS 和 JavaScript

接下来的内容

接下来的课程将介绍一些 JavaScript 内容、TypeScript 的小技巧以及其他通用指导建议。有丰富 JavaScript 经验的用户可以跳过或快速浏览这些部分。

我们还将深入讲解核心的函数式编程概念,并演示如何使用 fp-ts 库。通过一些基于真实应用场景的示例项目,进一步探索函数式编程中的关键思想。
随后,我们将进入更高级的主题,例如编写领域特定语言(DSL)和自由单子(free monads)。课程包含完整的示例代码,并有部分项目部署在 AWS 云环境中。

...
目标达成

本课程在完整性方面是完整的,包含了所有相关的代码。我们这样做有两个原因:

  • 学生无需在课程与 GitHub 上的额外代码之间来回切换。
  • 多数情况下,为简洁起见,我们会省略某些非关键部分,例如必要的导入语句。但包含这些内容至关重要,因为对语言或框架尚不熟悉的初学者需要清楚了解应导入哪些内容。

为什么选择函数式编程?