java函数式编程

java中的函数式编程主要通过模拟函数子functor来实现,通过一个接口来声明函数子调用的接口(
例如call(ReturnType, ParameterList)),其中ReturnType表示函数返回的类型(通过参数多态实现), ParameterList表示参数列表。

functor一般有3种

* 1:谓词,返回值为boolean类型,表示判断是非的。
* 2:过程, 没有返回类型,表示计算的,在commons集合用闭包表示这个。
* 3:转换,有返回类型为非boolean类型,表示把参数tranform为结果类型。


partial, 分步运算,表示的一个绑定一个参数值返回相应的函数, 一步步的完成函数调用,或者也也可以绑定
一个参 数让后在返回一个函数子,在利用这个函数子来计算。
function composition,符合函数,表示的是z(x) = f(g(x)),把多个函数符合成单个函数。在程序中表现为以
一个函 数为参数返回复合后的函数。注意函数z(x)的定义域为g(x)的定义域,值域为f(x)的值域。
在f(x)中实现复 合 逻辑。
Higher-order functions 高阶函数,高阶函数表示的是以函数为参数或者返回函数的函数。

典型高阶函数
map(f, [a1, a2...an]) =[f(a1), f(a2), ..], 集合映射。
filter, 集合过滤。等集合操作。这些函数一般在集合上迭代执行操作。

folding, 叠加操作,就像连续连续叠加操作,有一个加函数,一个初始值,还有一个被叠加集合
,初始值的位置为了保存上一次计算的结果用来下次叠加的。
foldl(f, p, [a1, a2...an]) = f(f...f(f(p, a1), a2)..), an).


参考FunctionalJ, google的集合包里面也实现了functor.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值