知识卡片

操作作为一等公民是函数式留给后来语言的核心遗产

普通读书笔记卡 · 1815.d

内容

让操作(函数、方法)本身能像普通数据一样被赋值、传递、存储和返回,是函数式编程留给后来所有语言的核心遗产。多数主流语言早就支持把一个函数当作另一个函数的参数,但真正把操作当作头等对象来对待、并配上完整类型系统支撑其安全性的,是函数式语言率先做透的事。这个思想后来被面向对象语言吸收成把方法调用本身包装成对象的机制,用来实现原本要靠层层回调或访问者模式才能表达的高阶行为。

参考来源

- 位置:《架构之美》第13章《软件架构:面向对象与面向函数》13.3.4节《函数式的优势》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0260.xhtml) - 结论依据:原文明确"能够让操作成为一等公民……许多主流的语言都能够支持将一个例程作为另一个例程的参数,但这不能够被视为基础性的设计技术……现代的函数式语言都将高级的函数视为常规的程序对象,并开发了相关的类型系统……与代理相关的表示法是直接从这些函数式编程概念中派生的"。 - 原始内容:第一个是能够让操作成为"一等公民"……许多主流的语言都能够支持将一个例程作为另一个例程的参数,但这不能够被视为基础性的设计技术……现代的函数式语言都将高级的函数视为常规的程序对象……与代理相关的表示法是直接从这些函数式编程概念中派生的。