mapreduce: map, reduce功能的复合。
一、reduce
reduce 本身就是对一个数组进行一个连续性的粘合操作,而不是单独性操作。
reduce(string,["a","b","c"]) # =>"abc" ,粘合操作
map(string,[1,2,3]) # =>["1", "2," "3"]
二、mapreduce
举个例子:
mapreduce(x->x*2, +,[1 2 3]) # 1^2 +2^2+3^2 =14
==
map(x->x*2,[1,2,3])|>sum #
比如,有一个例子,对于一个序列,比如:【1,2,3,。。。】,进行平方和累计计算,形成一个新的序列,【1,5,14,。。。】。14=1^2+2^2+3^2.
map(x->map(y->y*2,collect(1:1:x))|>sum,collect(1:1:10))
或
map(x->mapreduce(y->y^2,+,collect(1:1:x)),collect(1:1:10))
三、更具一般性的例子
需要说明一下:如果对于一个无序的序列 ,比如【1,1,2,2,3,3,4,5】
L =[1,1,2,2,3,3,4,5]
map(x->mapreduce(y->y,+,L[1:x]),collect(1:1:length(L)))# 更具有一般性