|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。编程|函数注:在您浏览本篇的时分,但愿你对JavaGeneric(范型)可以有所懂得和分明。
记:周末在给javaparty讲FP中,良多人仿佛对fp其实不体贴,也以为java中fp的感化不年夜。实在这是个很年夜的看法毛病,范型的开展,对java的函数式编程撑持很年夜,对Functor的影响也十分年夜。Functor在算法、逻辑、前提盘算、划定规矩引擎等等方面,城市有很年夜的作为,这个影响可就会深远的多了。――估且以此篇的初步,叫醒java开辟者对FPinJava的从头熟悉。
周六给javaparty讲了java中的函数编程(FunctionalProgramminginJava),但因为本人筹办的不充实,讲的其实不深切。估且再写点blog增补一下。固然,接上去的日子里,也盘算挤点工夫再深切研究以下Functor,感到这个使用,未来会很普遍,即便java是一个OO言语,是面向形态的命令式编程(Imperativeprogramming)言语。
关于Java言语来讲,FP并非其一个专长。可是Functor倒是一个很不错的新新亮点,固然Functor这个观点其实不新,早在C++的STL就已被提出来了:Afunctorisafunctionthatcanbemanipulatedasanobject,oranobjectrepresentingasingle,genericfunction。――透过这个形貌,我想我们能够较为这么说:Functor=FunctionObject。以是,在OO言语中,地道的Function是不存在的,在Java言语中,Function也是一个对象,这个对象就是Functor。
可是,在java中,Functor却由于java5对范型(Generic)的撑持,终究破土而出,成为一个新新亮点。而我也信任,这个亮点不会只是偶然的闪灼,势必在将来的良多使用中,显现出明亮的一面。
Functor次要由三品种型:谓词(predicate),函数(function),历程(procedure)。谓词的盘算了局只前往布尔值;函数的盘算盘算前往一个对象;历程则只卖力盘算,没有前往了局
predicate
returnabooleanvalue
function
returnanObjectvalue
procedure
dontreturnanything
Functor自己有一元二元三元・・・之分。固然,我对最为罕见的就是一元(UnaryPredicate,UnaryFunction,UnaryProcedure)和二元(BinnaryPredicate,BinnaryFunction,BinnaryProcedure)。
下面都是一些很笼统的观点,那末一个Functor究竟甚么模样呢?
起首让我们来看一个例子,经由过程这个例子来一步步分明Functor的用途,分明甚么是Functor:
publicstatic<T>List<T>select(Collection<T>source,UnaryPredicate<T>selector){
List<T>result=newArrayList<T>();
for(Titem:source){
if(selector.test(item)){
result.add(item);
}
}
returnresult;
}
这个例子就是Functor的典范使用,使用Functor中的一元谓词,机关了一个select算法。
(未完,待今天持续)writedby胡长城(银狐999)
用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。 |
|