《函数式编程变得更简单:分步指南(Functional Programming Made Easier A Step-by-Step Guide)》

作者:

日期:2021-11-27

出版:

  • 282
  • 0
  • 0

作品总结

《函数式编程变得更简单:分步指南(Functional Programming Made Easier A Step-by-Step Guide)》


作者如是说:

一本从初学者到高级的函数式编程书,一路上没有跳过任何一步。

在我 40 年的编程生涯中,我一直觉得编程书籍总是让我失望,尤其是函数式编程书籍。所以,我写了一本我希望在 5 年前就拥有的书。

函数式编程永远不会简单,但它可以更容易。

函数式编程很难。太难。多年来,我一直在努力学习一门函数式语言,但没有明确的指南可以让你从一无所知到成为一名函数式程序员。

函数式编程显然是未来,这可以通过查看所有传统语言慢慢采用函数式特性来见证。但为什么要妥协?为什么不拥有真正的函数式编程语言的所有功能?

对于大多数人来说,从命令式编程语言(Javascript、Python、C#、Java 等)迁移到函数式编程语言(Haskell、PureScript 等)非常困难,需要多年的努力。

嗯,没有了。函数式编程变得更容易将从基础开始。本书假设您对函数式编程一无所知。从一个概念到另一个概念,一次只需要一步一步,直到您达到当今工作功能程序员的水平。

这本书在讲座章节之间交替,其中介绍了一个新概念,我们一起编码,然后是实验室章节,在那里您使用该新概念进行所有编码。但不要害怕。与您在学校遇到的数学书籍不同,我将向您展示所有答案。不仅如此,我还会一次一行地编写代码,并解释我每一步的想法。

当编码或设计中出现错误时,我会将它们留在书中。任何编程过的人都非常清楚,您永远不会在第一次正确编写任何代码。您对本书的体验将尽可能地模拟这一点。我们会找出错误,分析我哪里出错了(有时是故意的),然后一起修复。

我从不只是按照你的方式扔代码。我会请你写一些代码,如果你有困难,我有时会给你提示,这样你就可以再试一次。最后,我们将始终一次一行地对解决方案进行编码,以便您在遇到问题时继续进行操作,或者在完成练习后仅根据我的解决方案检查您的解决方案。

本书的前半部分是您学习新概念的地方。后半部分是您可以应用所学来构建小程序的地方。在最后几章中,您将构建一个用纯函数式编程语言 PureScript 编写的全栈 Web 服务器和基于浏览器的前端。

PureScript 是一种现代的类似 Haskell 的纯函数式编程语言,可编译为 Javascript,使其成为浏览器和服务器(通过 Node)的最佳函数式编程语言。它与 Haskell 密切相关,以至于您学习的所有概念都直接从 PureScript 转换为 Haskell。

在过去的一年里,我用这本书来教一个开发团队,他们现在都在用 PureScript 为客户构建 SaaS 应用程序。

本书假设你没有数学经验,只有一点点编程经验。

一些详细解释的主题如下:

纯函数
不变性
高阶函数
咖喱
部分申请
递归
尾递归
模式匹配
类型
多态
单态

产品
类型类
多参数类型类
重叠实例
孤立实例
功能依赖
同构
同态
抽象代数
岩浆
半群
幺半群
团体
阿贝尔群(又名交换群)
半灵
环和交换环
欧几里得环
折叠
代数数据类型 (ADT)
函子(协变、逆变、不变)
值的函子 vs 函数
双函子
函子
应用函子
可遍历的
可折叠
应用解析器
单子
一元解析器
Monad Stacks(又名 Monad Transformers)
范畴论(表面)
定义
哈希类别
函子
适用的
克莱斯利类别
它会在此过程中教会您的一些技能是:

解释编译器错误
类型孔
效果(同步和异步)
AVars 和 Refs(受管全局状态)
数据总线
阿贾克斯
JSON 解码
外部功能接口 (FFI)
从练习和最终项目中,您将了解到:

哈希路由
静态文件服务器
CORS
盐哈希密码
老实说,我不想写这本书。我宁愿是别人写的,这样我在学习函数式编程时就可以只读这本书。我的旅程会容易得多。虽然函数式编程永远不会简单,但有了这本书,它会容易得多。

0条评论