《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。
分享到:
相关推荐
为了研究化学氧在封闭空间生命保障系统中的应用,进行了封闭空间内的温度、湿度和二氧化碳浓度对超氧化钾反应的影响以及超氧化钾在真人存在下的封闭空间内的反应状况的实验。首先利用小型封闭空间模拟装置进行试验,...
为研究瓦斯在煤粒中流动的基本规律,设计了封闭空间内的煤粒瓦斯解吸实验,分别以菲克和达西定律为基础,建立了该条件下煤粒瓦斯放散的数学模型,通过有限差分的方法进行离散并编制程序进行解算,最终实验和数值模拟都...
为了研究煤在低温氧化过程中生成的CO对CH4爆炸产生的影响,首先在理论上分析了CO/CH4/O2/N2混合气体的爆炸下限,依据设定方案开展了充分预混情况下低浓度CO在封闭空间内对CH4爆炸影响的数值模拟。结果表明:相同条件下,...
运用化学反应动力学理论,采用详细的瓦斯爆炸反应机理,分析了封闭空间内水及CO2对瓦斯爆炸反应动力学特性的影响。在4种工况条件下,通过数值模拟的手段,分析对比了水及CO2对瓦斯爆炸过程中温度、压力、反应物浓度、...
以瓦斯爆炸初期火焰传播速度与化学反应速率的关系为基础,实验研究半封闭空间瓦斯爆炸初期的火焰传播动力学过程。分析得出:瓦斯爆炸初期反应速率常数与爆炸传播速度的平方成正比;瓦斯从开始反应到爆炸的动力学过程...
封闭空间火焰彩色图像分割方法研究,黎昌海,吴迎春,普通阈值图像分割方法不适用于高噪声的封闭空间燃烧火焰图像分割。对封闭空间典型火焰图像的分析表明,其红色R、绿色G和亮度I分量
复杂形状封闭空间结构噪声的有源控制数值研究,靳国永,王丽杰,弹性结构向封闭空间声辐射的有源控制问题具有重要的工程应用背景。然而,传统的针对三维封闭空间结构声辐射及其有源控制的理论研
UL 50-2007 用于封闭空间的电动设备标准
基于单片机的封闭空间温、湿度控制系统.pdf
电子政务-封闭空间下的可调放电间隙实验装置.zip
参考资料-基于单片机的封闭空间温、湿度控制系统.zip
通过辐射模态研究了封闭空间的结构声辐射及其有源控制问题。分析了辐射模态的数学和物理意义并揭示了辐射模态与声腔模态之间的内在耦合关系,并通过声辐射模态建立了弹性封闭空间结构声辐射有源控制模型。针对辐射...
意法半导体(ST)让手机和穿戴式设备在室内和封闭空间内拥有优异的导航性能.pdf
在模拟装置上通过催化氧化法对CO与空气的混合气进行了净化研究。研究了常温、常压下3种催化剂、循环流速和时间对CO/空气低浓度混合气体中CO的净化性能。实验结果表明,3种催化剂对CO/空气低浓度混合气体具有一定程度...
为了进一步了解煤低温阶段氧化反应特点,运用鼓风恒温箱装置和GC-950型气相色谱仪对褐煤在80℃恒温密闭环境中CO的生成规律进行了研究,研究表明,当氧气浓度充足时,CO生成速率随着煤温的稳定而保持恒定,CO生成量呈线性...
在这项研究中,表达了在1参数封闭的匀速运动下投影曲线的动能公式,从而给出了定理。 还给出了与该公式有关的一些特殊情况。
文章将无网格法引入小尺度封闭空间声场的计算。首先推导了适用于任意形状小尺度封闭空间的无网格Galerkin声场数值计算模型。在模型中,利用Galerkin型加权残量法推导了计算节点声压的系统方程,根据移动最小二乘近似...
自己做的填充函数,本函数采用队列的方法填充。
密闭空间安全技术交底