Lean 函数式编程

作者:David Thrane Christiansen

版权所有:Microsoft Corporation 2023

Lean-zh 项目组

这是一本免费的书,介绍了如何将 Lean 4 作为编程语言使用。本书中所有代码示例均经过了 Lean 4 版本 4.1.0 验证。

发行历史

2024 年 1 月

这是一个次要的 bug 修复版本,修复了示例程序中一个回退问题。

2023 年 10 月

在首次维护版本中,修复了许多较小的错误,并根据 Lean 的最新版本更新了文本。

2023 年 5 月

本书现已完成!与 4 月份的预发布版本相比,许多小细节得到了改进,并修复了一些小错误。

2023 年 4 月

此版本添加了关于使用策略编写证明的插曲,以及添加了将性能和成本模型的讨论,与停机证明和程序等价性证明相结合的最后一章。这是最终版本前的最后一个版本。

2023 年 3 月

此版本添加了关于使用依值类型和索引族编程的章节。

2023 年 1 月

此版本添加了关于单子变换器的章节,其中包括对 do-记法中可用的命令式特性的描述。

2022 年 12 月

此版本添加了关于应用函子的章节,此外还更加详细地描述了结构和类型类。此外改进了对单子的描述。由于冬季假期,2022 年 12 月版本被推迟到 2023 年 1 月。

2022 年 11 月

此版本添加了关于使用单子编程的章节。此外,强制转换一节中使用 JSON 的示例已更新为包含完整代码。

2022 年 10 月

此版本完成了类型类的章节。此外,在类型类章节之前添加了一个简短的插曲,介绍了命题、证明和策略,因为简单了解一下这些概念有助于理解一些标准库中的类型类。

2022 年 9 月

此版本添加了一个关于类型类的章节的前半部分,这是 Lean 的运算符重载机制,也是组织代码和构建函数库的重要手段。此外,还更新了第二章以适应 Lean 中 Stream 流 API 的变化。

2022 年 8 月

第三次公开发布增加了第二章,其中描述了编译和运行程序以及 Lean 的副作用模型。

2022 年 7 月

第二次公开发布,完成了第一章。

2022 年 6 月

这是第一次公开发布,包括引言和第一章的一部分。

关于作者

David Thrane Christiansen 已使用函数式语言二十年,并使用依值类型十年。他与 Daniel P. Friedman 合著了《The Little Typer》,介绍了依值类型论的关键思想。他拥有哥本哈根 IT 大学的博士学位。在学习期间,他为 Idris 语言的第一个版本做出了重大贡献。离开学术界后,他曾在俄勒冈州波特兰的 Galois 和丹麦哥本哈根的 Deon Digital 担任软件开发人员,并担任 Haskell 基金会执行董事。在撰写本文时,他受雇于 Lean 专注研究组织,全职从事 Lean 的工作。"

授权许可

Creative Commons License
本作品采用知识共享-署名 4.0 国际许可协议授权。