函数式编程
hrcnpc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学习解释器的3个理由
有时你自己需要实现一个解释器。一些程序虽然不是解释器,却有类似于解释器的部分。软件愈加复杂的趋势使得程序与解释器之间的差距变小。原创 2014-01-17 12:47:19 · 683 阅读 · 0 评论 -
设计递归数据类型接口的原则
为数据类型中的每种数据都提供一个构造者。为数据类型中的每种数据都提供一个判定者(predicate)。为传递进此数据类型的构造者的每一个数据都提供一个提取者(extractor)。原创 2014-01-17 12:49:38 · 703 阅读 · 0 评论 -
解释器的原则(Recipe)
查看一段数据。确定这段数据表示的是哪一种类型的数据。取出数据中的元素并对它做正确的事。原创 2014-01-17 12:45:11 · 849 阅读 · 0 评论 -
撰写归纳定义的数据结构的原则
当定义一个操作归纳定义的数据结构的过程时,程序的结构应当以该数据结构为模式。进一步解释:为语法中的每一个非终结符号撰写过程。该过程必须处理非终结符号对应的数据,而不处理其它数据。在每个过程中,撰写该非终结符号对应的归纳的一个分支。你可能需要额外的用例结构,但这是你的开始。对每个出现在右侧的非终结符号,对它写一个操作此非终结符号的过程的递归调用。原创 2014-01-17 12:46:19 · 747 阅读 · 0 评论 -
过程化表示抽象数据的原则
若要表示的数据是一个函数集合,那么我们可以用具体应用时的行为来表示它。在这种情形下,我们可以遵循以下规则来提取接口和过程化的表示:找出用例(client code)中能够求值并返回所需类型的lambda表达式。为每个这样的lambda表达式创建一个构造过程。构造过程的参数将是此lambda表达式的自由变量。将用例中的每个这样的lambda表达式替换成对相应的构造器的调用。定义一个类似于原创 2014-01-17 12:48:06 · 962 阅读 · 0 评论 -
术语
语法分类(syntactic categories):在语法定义中::=左侧定义的集合。语法推导(syntactic derivation):证明某个给定的数据的值是集合的一个成员的过程。约束变量(bound variable):lambda演算中的唯一参数。inlining技术:将仅出现一次的定义转化为域内的内建变量。数据抽象(data abstraction)技原创 2014-01-17 12:48:47 · 837 阅读 · 0 评论
分享