历史上,费马、伽罗瓦、高斯、黎曼等人的作品出版经历各有不同,而我们应感激那些保存、传播知识的人。刘老师自 2009 年起在线分享函数式算法等内容,2017 年出版中文版书籍,后收集反馈从 2020 年底重写,2023 年 5 月完成新版。
相对于之前的书稿主要变化如下:
1.重写所有章节,使用简单的符号代替冗长的文本描述。
2.重新组织书籍结构。(a) 将列表移动到第一章,使其对新接触函数式编程的读者更友好;(b) 在第 7 章中添加了配对列表 B 树的部分。将红黑树和 AVL 树的删除算法添加到附录中;(c) 删除了后缀树的章节。对于命令式字符串匹配,重点关注 KMP 算法,并删除了 Boyer-Moore 算法;(d) 添加了所有 120 个练习的答案。
3.统一示例程序的编程语言。这是对第一版的主要反馈之一。使用 Haskell 作为函数式示例的语言,并将命令式示例统一到一个名为“布尔巴基”的语言中(布尔巴基是一群(主要是)法国数学家的笔名,包括安德烈·韦伊、亨利·嘉当等。这个虚拟人物表明编程语言并不存在,而它反映了背后的一些流行语言,如 Python、Java、C 等)。将示例收集在每章后面的附录中。
4.更正第一版中所有已知的错误。