首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Functor结合, 参数集合, Curry

2012-10-29 
Functor组合, 参数集合, CurryFunctor组合, 参数集合, CurryAjoo曾经写过面向组合子编程系列。我也帮着助威

Functor组合, 参数集合, Curry
Functor组合, 参数集合, Curry

Ajoo曾经写过面向组合子编程系列。我也帮着助威。
面向组合子编程和并不是简单意义上的Composite Pattern。Composite Pattern只是一个简单的基本Pattern。
面向组合子编程只是用到了Composite Pattern,面向组合子编程本身的内容复杂许多,以至于复杂到这样的程度,数据和行为必须分开,形成Visitor Pattern。
而一般意义上的Compositor Pattern都是数据和行为在一起的对象的组合。
用于面向组合子编程中,一般是指只有行为没有数据的Functor对象进行组合。

基本的模型是这样。包括3个参与部分。算法,Functor算子,参数。
算法基本上是固定的,Functor算子可能自由组合,参数也可能一个或者多个。

下面根据Functor和参数这两个方面介绍面向组合子编程的3种类型。

1. Functor组合 – Combinator, Pipe
Functor有多个,参数只有一个。
这一类的特点是,Functor移动,参数不动。

这是最常见的一类。
常见于用于工作流程控制的逻辑组合子。for each, or, and, not, if, else 等。
Hibernate的 Criteria Query 的 And , Or , Like, Equals的组合,也属于这一类。



我觉得,你举的例子都是第三种curry。
functor成为操作符,操作值和返回值是同一类型,体现的就是第三种curry。
因为这种链式调用的作用,就是减少参数个数。

热点排行