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

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

位教师:Martin Odersky
访问权限由 New York State Department of Labor 提供
61,898 人已注册
了解顶级公司的员工如何掌握热门技能

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

该课程共有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 个
已于 May 7, 2021审阅
I got even more functional programming knowledge effectively. I also got an Excel or more like Google Sheet core in source code with the Week 5 programming task.
已于 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



