《Structure and Interpretation of Computer Programs》中提到,“The ability to create pairs whose elements are pairs is the essence of list structure's importance as a representational tool. We refer to this ability as the closure property of cons.”这话表面上是说 cons 作为 LISP 的核心,能够把自己产生的 pair 作为 cons 的参数进而去产生新的组合 pair,是列表数据结构在表示上非常本质的东西。“closure property”我倾向于翻译成封闭性。因为在代数中,给定 f(x) = y,如果任意 x 属于 Z,且 y 也属于 Z,那么 Z 就对 f 是封闭的。
当然我们可以很容易地想到高中数学里面的列表。这跟 LISP 中的列表是完全对应的。正是这种特性造就了 LISP 语言的强大。但是这种模式对于即使不熟悉数学的程序员来说也应该似曾相识。比如 JUnit4 和 JMock 里面用的 Hamcrest Matcher。你可以任意组合各种 matcher 达到想要的效果。比如 assertThat(result, is(not(greaterThan(10)))。它使得 JUnit 摆脱了不停地往 Assert 类里面增加方法的局面。也是为什么 JUnit4 要绑定 Hamcrest Matcher 发布的原因。如今你很难看到一个优秀的测试框架里面不用 Hamcrest Matcher 的。Matcher 的模式就是:makeMatcher(someMather) === AnotherMatcher。也就是说,从逻辑上,makeMatcher 和 Matcher 这个抽象集合组成了一个代数空间。
找到这样的空间,我们就可能找到了非常强大而优雅的工具。比如 SICP 里面提到的 painter。我们可以生成一个给定 painter 的水平镜像 painter、垂直镜像 painter、扭曲 painter,等等。这点对于我们做面向对象设计的时候也极有启发价值。
=== Update ===
Monads 跟封闭空间也很相似。参考:
Monads Are Not Metaphors。
分享到:
相关推荐
为了研究化学氧在封闭空间生命保障系统中的应用,进行了封闭空间内的温度、湿度和二氧化碳浓度对超氧化钾反应的影响以及超氧化钾在真人存在下的封闭空间内的反应状况的实验。首先利用小型封闭空间模拟装置进行试验,...
### UL 50-2007 用于封闭空间的电动设备标准 #### 知识点一:标准概述 **UL 50-2007** 是一个由美国保险商实验室(Underwriters Laboratories Inc., UL)制定的安全标准,旨在为电气设备的封闭空间提供一套非环境...
封闭空间下的可调放电间隙实验装置是电子政务领域的一个重要研究内容,尤其是在电力系统、电磁环境模拟以及安全防护等方面具有深远的影响。 首先,我们来了解可调放电间隙实验装置的基本原理。这种装置通常用于模拟...
本研究题为《一参数封闭空间同质运动投影曲线的动能》,其目的是表达在1参数封闭匀速运动下投影曲线的动能公式,并据此提出定理。此外,研究中也提到与动能公式相关的一些特殊情况。这涉及到参数封闭空间运动的概念...
【标题】: "基于单片机的封闭空间温、湿度控制系统" 这个系统是单片机技术在环境控制领域的应用实例,主要目标是实现对封闭空间内的温度和湿度进行精确监测与控制。单片机,全称单片微型计算机,是一种高度集成的微...
文章中提到的火源粗略定位及精确定位方法,首先简化了封闭空间火场的火源模型,然后在分析温度与后向拉曼散射光的关系特性的基础上,提出了传感光纤布阵方案和火源精确定位的数学模型。通过实验验证,该方法的有效性...
本文介绍了一种基于单片机AT89C51的封闭空间温湿度控制系统的设计与实现,该系统主要应用于对温湿度敏感的环境,如蔬菜大棚,其目的是为了提供适宜的环境条件以促进作物的生长。在引言部分,文章提出了人们对高品质...
意法半导体(ST)让手机和穿戴式设备在室内和封闭空间内拥有优异的导航性能.pdf 本文的主要知识点是关于半导体技术和导航性能的研究。下面是从文件中生成的详细知识点: 1. 半导体技术:半导体是一种特殊的电子元件...
通过辐射模态研究了封闭空间的结构声辐射及其有源控制问题。分析了辐射模态的数学和物理意义并揭示了辐射模态与声腔模态之间的内在耦合关系,并通过声辐射模态建立了弹性封闭空间结构声辐射有源控制模型。针对辐射...
在模拟装置上通过催化氧化法对CO与空气的混合气进行了净化研究。研究了常温、常压下3种催化剂、循环流速和时间对CO/空气低浓度混合气体中CO的净化性能。实验结果表明,3种催化剂对CO/空气低浓度混合气体具有一定程度...
为了进一步了解煤低温阶段氧化反应特点,运用鼓风恒温箱装置和GC-950型气相色谱仪对褐煤在80℃恒温密闭环境中CO的生成规律进行了研究,研究表明,当氧气浓度充足时,CO生成速率随着煤温的稳定而保持恒定,CO生成量呈线性...
封闭图形是有一串左边表示,判断一个坐标是在封闭图形什么位置 String s5="[{\"mapLat\":1,\"mapLng\":2},{\"mapLat\":3,\"mapLng\":5},{\"mapLat\":8,\"mapLng\":5},{\"mapLat\":5,\"mapLng\":3},{\"mapLat\":8,\...
文章将无网格法引入小尺度封闭空间声场的计算。首先推导了适用于任意形状小尺度封闭空间的无网格Galerkin声场数值计算模型。在模型中,利用Galerkin型加权残量法推导了计算节点声压的系统方程,根据移动最小二乘近似...