在本课程中,您将学习如何在设计大型 Scala 应用程序时应用函数式编程风格。您将了解重要的函数式编程新概念,从懒评估到使用 monads 构建库。从状态空间探索到随机测试,再到离散电路模拟器,我们将处理更大型、更复杂的示例。您还将学习如何在现实世界中编写优秀 Scala 代码的最佳实践。最后,您还将学习如何利用编译器从类型中推断值的能力。 本课程的多个部分涉及函数式编程如何与可变状态交互的问题。我们将探讨将函数与状态相结合的后果。我们还将使用无限数据结构或函数式反应编程,研究可变状态的纯函数式替代方案。 推荐背景:您应该至少有一年的编程经验。熟练掌握 Java 或 C# 是理想的选择,但掌握其他语言(如 C/C++、Python、Javascript 或 Ruby)也足够了。您应该熟悉使用命令行。本课程应在 Scala 中的函数式编程原理:https://hua.dididi.sbs/learn/progfun1 之后学习。

Scala 中的功能程序设计
本课程是 Scala 中的函数式编程 专项课程 的一部分

位教师:Martin Odersky
访问权限由 Coursera Learning Team 提供
61,900 人已注册
了解顶级公司的员工如何掌握热门技能

积累特定领域的专业知识
- 向行业专家学习新概念
- 获得对主题或工具的基础理解
- 通过实践项目培养工作相关技能
- 获得可共享的职业证书

该课程共有5个模块
首先,我们将重温从《Scala 函数编程原理》中学到的一些概念:集合、模式匹配和函数。然后,我们将讨论 for-comprehensions,这是 Scala 中遍历列表、处理列表并返回新列表的一种强大方法。我们将了解如何使用 for-comprehensions 进行查询,以及 Scala 编译器如何将 for-comprehensions "desugared" 为对高阶函数的调用。最后,我们将讨论什么是单体,以及如何通过一些示例验证单体法则是否满足要求。
涵盖的内容
8个视频8篇阅读材料3个编程作业
本周我们将重温由组合搜索引起的性能问题,并将发现函数式编程中可以解决这些问题的一个重要概念:懒惰。我们还将学习一些关于树证明的知识,尤其是如何将结构归纳法扩展到树上。
涵盖的内容
6个视频2个编程作业
本周,我们将学习如何让编译器为我们编写程序!我们将看到编译器如何根据程序的类型召唤程序片段,以及如何利用这种机制实现一种新形式的多态性(类型类)。
涵盖的内容
7个视频5篇阅读材料3个作业2个编程作业
本周,我们将学习状态和副作用。通过一个丰富的示例,我们将学习在大型程序中管理状态的编程模式。我们还将学习 Scala 中的 for 循环和 while 循环。
涵盖的内容
5个视频
本周我们将通过示例学习一些重要的编程模式,首先是观察者模式,然后是函数式反应编程。
涵盖的内容
6个视频2个编程作业
获得职业证书
将此证书添加到您的 LinkedIn 个人资料、简历或履历中。在社交媒体和绩效考核中分享。
位教师

人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
学生评论
- 5 stars
66.33%
- 4 stars
24.01%
- 3 stars
7.57%
- 2 stars
1.62%
- 1 star
0.44%
显示 3/3137 个
已于 Jul 14, 2016审阅
Picks up where the previous course left off... the last assignment is a bit more challenging than the others, well for me it was. Thanks to the people who put the course together.
已于 Sep 2, 2021审阅
This course is quite difficult to me, especially the last section. I have to re-watch it so many time to fully understand. At the end of the day, it is worth the effort.
已于 Sep 14, 2016审阅
This is a university degree course which takes enormous effort to complete. But still its beond the programming course range giving you whats not possible to google or learn practical way. Thanks!
从 计算机科学 浏览更多内容

École Polytechnique Fédérale de Lausanne

École Polytechnique Fédérale de Lausanne

École Polytechnique Fédérale de Lausanne

École Polytechnique Fédérale de Lausanne



