Difference between revisions of "Z^3 Map Reduce"

From ZCubes Wiki
Jump to navigation Jump to search
(Created page with " Map Reduce")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
  
  
 +
*[[ Z3 | << Z3 Home ]]
 +
*[[ Z%5E3_Language_Documentation | Z3 Language Documentation]]
 +
*[[ Z%5E3_Array_Manipulation_Member_Functions | Listing of Z3 Array Manipulation Member Functions]]
  
Map Reduce
+
==Map Reduce Functions==
 +
 
 +
a=1..10;
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
console.log(a[i],i)
 +
result.push((a[i])^2)
 +
 
 +
}
 +
result
 +
 
 +
-----------------
 +
 
 +
Using map function
 +
a=1..10;
 +
a.map(
 +
function (x,i)
 +
{
 +
console.log(x,i)
 +
return(x^2)
 +
}
 +
)
 +
 
 +
a.map((x,i)=>x^2)
 +
 
 +
a.$("x^2")
 +
 
 +
f:=x^2;
 +
a.$(f)
 +
 
 +
-----------
 +
 
 +
Reduce function
 +
a=1..10;
 +
a.reduce((x,i,last)=>x+last,10)
 +
 
 +
 
 +
a.reduce(
 +
function(last,x,i)
 +
{
 +
return(x+last)
 +
},
 +
10
 +
)
 +
 
 +
a.reduce((last,x,i)=>x+last,10)
 +
 
 +
a
 +
 
 +
 
 +
 
 +
var sum=0;
 +
for(var i=0;i<a.length;i++)
 +
{
 +
sum=sum+a[i]
 +
 
 +
}
 +
sum
 +
 
 +
a.reduce(
 +
function(last,x, i)
 +
{
 +
return(x+last)
 +
},
 +
10
 +
)
 +
 
 +
a.reduce(
 +
function(last,x, i)
 +
{
 +
return(Math.max(x,last))
 +
},
 +
60
 +
)
 +
 
 +
a.reduce(
 +
function(last,x, i)
 +
{
 +
return(Math.min(x,last))
 +
},
 +
60
 +
)
 +
 
 +
 
 +
a.reduce(
 +
function(last,x,i)
 +
{
 +
console.log(last,x,i)
 +
return(x+last)
 +
},
 +
0
 +
)
 +
 
 +
a.reduce(
 +
function(last,x,i)
 +
{
 +
console.log(last,x,i)
 +
return(last-x)
 +
},
 +
0
 +
)
 +
 
 +
 
 +
a.reduce(
 +
function(last,x,i)
 +
{
 +
console.log(last,x,i)
 +
return(last*x)
 +
},
 +
1
 +
)
 +
 
 +
SUM(a)
 +
 
 +
PRODUCT(a)
 +
 
 +
1/2/3/4/5/6/7/8/9/10
 +
 
 +
a.reduce(
 +
function(last,x,i)
 +
{
 +
console.log(last,x,i)
 +
return(last/x)
 +
},
 +
1
 +
)
 +
 
 +
 
 +
a.filter(
 +
function(x,i)
 +
{
 +
return(x%2)
 +
}
 +
)
 +
 
 +
 
 +
a.filter(
 +
function(x,i)
 +
{
 +
return(x%2==1)
 +
}
 +
)
 +
 
 +
 
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
if(a[i]%2==1)
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
 
 +
 
 +
a.filter(
 +
function(x)
 +
{
 +
return(x%2==1)
 +
}
 +
)
 +
 
 +
a.filter(x=>x%2==1)
 +
 
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
if(i%4==0)
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
if(i%4==0)
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=0;i<a.length;i=i+4)
 +
{
 +
result.push(a[i])
 +
}
 +
result
 +
 
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
if(((i%4)==3)||(i%4)==0)
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
if(((i%4)==3)||((i%4)==0))
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=0;i<a.length;i++)
 +
{
 +
if((i%4)==0)
 +
{
 +
result.push(a[i-1])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
 
 +
 
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=0;i<a.length;i=i+4)
 +
{
 +
result.push(a[i-1])
 +
result.push(a[i])
 +
}
 +
result
 +
 
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=2;i<a.length;i++)
 +
{
 +
if((i%3)==0)
 +
{
 +
result.push(a[i])
 +
}
 +
if((i%4)==0)
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
a=1..100;
 +
var result=[];
 +
for(var i=2;i<a.length;i++)
 +
{
 +
if((i%3)==2)
 +
{
 +
result.push(a[i])
 +
}
 +
if((i%4)==3)
 +
{
 +
result.push(a[i])
 +
}
 +
 
 +
}
 +
result
 +
 
 +
 
 +
 
 +
vehicles=
 +
[
 +
{
 +
speed: 23,
 +
color:"red",
 +
price:34.56
 +
},
 +
{
 +
speed: 22,
 +
color:"orange",
 +
price:14.56
 +
},
 +
{
 +
speed: 12,
 +
color:"green",
 +
price:34.56
 +
},
 +
{
 +
speed: 1.2,
 +
color:"grey",
 +
price:134.56
 +
},
 +
{
 +
speed: 62,
 +
color:"white",
 +
price:54.56
 +
}
 +
]
 +
 
 +
 
 +
vehicles
 +
.map(v=>v.speed+2)
 +
 
 +
 
 +
vehicles.f(v=>v.color=="orange" || v.speed>50)
 +
 
 +
 
 +
vehicles
 +
.f(v=>v.speed>50)
 +
.reduce(
 +
function(last,v,i)
 +
{
 +
return(last+v.price)
 +
},
 +
0
 +
)
 +
vehicles
 +
.filter(v=>v.speed>50)
 +
.reduce(
 +
function(last,v,i)
 +
{
 +
return(last+v.price)
 +
},
 +
0
 +
)
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.reduce(
 +
function(last,v,i)
 +
{
 +
return(last+v.price)
 +
},
 +
0
 +
)
 +
 
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.map(v=>v.price*20)
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.map(v=>v.price*20%)
 +
 
 +
 
 +
 
 +
 
 +
 
 +
vehicles
 +
.filter(
 +
function(v)
 +
{
 +
return(
 +
v.color=="orange"
 +
||
 +
v.speed>50
 +
 +
)
 +
}
 +
)
 +
/*var result=[]
 +
for(var i=0;i<vehicles.length;i++)
 +
{
 +
if(vehicles[i].color=="orange")
 +
{
 +
result.push(vehicles[i])
 +
}
 +
}
 +
console.log(result)*/
 +
 
 +
var result=[]
 +
for(var i=0;i<vehicles.length;i++)
 +
{
 +
if(vehicles[i].color=="orange")
 +
{
 +
result.push(vehicles[i])
 +
}
 +
}
 +
console.log(result)
 +
vehicles
 +
.map(v=>v.speed=v.speed+3)
 +
 
 +
vehicles
 +
.map(v=>v.speed)
 +
 
 +
 
 +
vehicles.f(v=>v.color=="orange" || v.speed>50)
 +
 
 +
 
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.map(v=>v.price*120%)
 +
 
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.map(v=>[v.color,v.price*120%])
 +
 
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.map(v=>[v.speed,v.color,v.price*120%])
 +
 
 +
vehicles
 +
.filter(v=>v.speed>20)
 +
.map(v=>[v.speed,v.color,v.price*80%])
 +
 
 +
 
 +
 
 +
newvehicles=
 +
[
 +
{
 +
speed: 23,
 +
color:"red",
 +
price:34.56,
 +
power:243
 +
},
 +
{
 +
speed: 22,
 +
color:"orange",
 +
price:14.56,
 +
power:233
 +
},
 +
{
 +
speed: 12,
 +
color:"green",
 +
price:34.56,
 +
power:53
 +
},
 +
{
 +
speed: 1.2,
 +
color:"grey",
 +
price:134.56
 +
},
 +
{
 +
speed: 62,
 +
color:"white",
 +
price:54.56
 +
}
 +
]
 +
 
 +
 
 +
newvehicles.filter(v=>!v.power)
 +
 
 +
newvehicles.filter(v=>v.power)
 +
 
 +
newvehicles.filter(v=>!v.power)
 +
 
 +
newvehicles
 +
.filter(v=>!v.power)
 +
.map(v=>[v.speed,v.color,v.price*80%])
 +
speed color price power
 +
23 red 34.56 243
 +
22 orange 14.56 233
 +
12 green 34.56 53
 +
1.2 grey 134.56
 +
62 white 54.56

Latest revision as of 09:43, 31 December 2021


Map Reduce Functions

a=1..10; var result=[]; for(var i=0;i<a.length;i++) { console.log(a[i],i) result.push((a[i])^2)

} result


Using map function a=1..10; a.map( function (x,i) { console.log(x,i) return(x^2) } )

a.map((x,i)=>x^2)

a.$("x^2")

f:=x^2; a.$(f)


Reduce function a=1..10; a.reduce((x,i,last)=>x+last,10)


a.reduce( function(last,x,i) { return(x+last) }, 10 )

a.reduce((last,x,i)=>x+last,10)

a


var sum=0; for(var i=0;i<a.length;i++) { sum=sum+a[i]

} sum

a.reduce( function(last,x, i) { return(x+last) }, 10 )

a.reduce( function(last,x, i) { return(Math.max(x,last)) }, 60 )

a.reduce( function(last,x, i) { return(Math.min(x,last)) }, 60 )


a.reduce( function(last,x,i) { console.log(last,x,i) return(x+last) }, 0 )

a.reduce( function(last,x,i) { console.log(last,x,i) return(last-x) }, 0 )


a.reduce( function(last,x,i) { console.log(last,x,i) return(last*x) }, 1 )

SUM(a)

PRODUCT(a)

1/2/3/4/5/6/7/8/9/10

a.reduce( function(last,x,i) { console.log(last,x,i) return(last/x) }, 1 )


a.filter( function(x,i) { return(x%2) } )


a.filter( function(x,i) { return(x%2==1) } )


var result=[]; for(var i=0;i<a.length;i++) { if(a[i]%2==1) { result.push(a[i]) }

} result


a.filter( function(x) { return(x%2==1) } )

a.filter(x=>x%2==1)

var result=[]; for(var i=0;i<a.length;i++) { if(i%4==0) { result.push(a[i]) }

} result

a=1..100; var result=[]; for(var i=0;i<a.length;i++) { if(i%4==0) { result.push(a[i]) }

} result


a=1..100; var result=[]; for(var i=0;i<a.length;i=i+4) { result.push(a[i]) } result


a=1..100; var result=[]; for(var i=0;i<a.length;i++) { if(((i%4)==3)||(i%4)==0) { result.push(a[i]) }

} result


a=1..100; var result=[]; for(var i=0;i<a.length;i++) { if(((i%4)==3)||((i%4)==0)) { result.push(a[i]) }

} result

a=1..100; var result=[]; for(var i=0;i<a.length;i++) { if((i%4)==0) { result.push(a[i-1]) }

} result



a=1..100; var result=[]; for(var i=0;i<a.length;i=i+4) { result.push(a[i-1]) result.push(a[i]) } result


a=1..100; var result=[]; for(var i=2;i<a.length;i++) { if((i%3)==0) { result.push(a[i]) } if((i%4)==0) { result.push(a[i]) }

} result

a=1..100; var result=[]; for(var i=2;i<a.length;i++) { if((i%3)==2) { result.push(a[i]) } if((i%4)==3) { result.push(a[i]) }

} result


vehicles= [ { speed: 23, color:"red", price:34.56 }, { speed: 22, color:"orange", price:14.56 }, { speed: 12, color:"green", price:34.56 }, { speed: 1.2, color:"grey", price:134.56 }, { speed: 62, color:"white", price:54.56 } ]


vehicles .map(v=>v.speed+2)


vehicles.f(v=>v.color=="orange" || v.speed>50)


vehicles .f(v=>v.speed>50) .reduce( function(last,v,i) { return(last+v.price) }, 0 ) vehicles .filter(v=>v.speed>50) .reduce( function(last,v,i) { return(last+v.price) }, 0 ) vehicles .filter(v=>v.speed>20) .reduce( function(last,v,i) { return(last+v.price) }, 0 )

vehicles .filter(v=>v.speed>20) .map(v=>v.price*20) vehicles .filter(v=>v.speed>20) .map(v=>v.price*20%)



vehicles .filter( function(v) { return( v.color=="orange" || v.speed>50

) } ) /*var result=[] for(var i=0;i<vehicles.length;i++) { if(vehicles[i].color=="orange") { result.push(vehicles[i]) } } console.log(result)*/

var result=[] for(var i=0;i<vehicles.length;i++) { if(vehicles[i].color=="orange") { result.push(vehicles[i]) } } console.log(result) vehicles .map(v=>v.speed=v.speed+3)

vehicles .map(v=>v.speed)


vehicles.f(v=>v.color=="orange" || v.speed>50)


vehicles .filter(v=>v.speed>20) .map(v=>v.price*120%)

vehicles .filter(v=>v.speed>20) .map(v=>[v.color,v.price*120%])

vehicles .filter(v=>v.speed>20) .map(v=>[v.speed,v.color,v.price*120%])

vehicles .filter(v=>v.speed>20) .map(v=>[v.speed,v.color,v.price*80%])


newvehicles= [ { speed: 23, color:"red", price:34.56, power:243 }, { speed: 22, color:"orange", price:14.56, power:233 }, { speed: 12, color:"green", price:34.56, power:53 }, { speed: 1.2, color:"grey", price:134.56 }, { speed: 62, color:"white", price:54.56 } ]


newvehicles.filter(v=>!v.power)

newvehicles.filter(v=>v.power)

newvehicles.filter(v=>!v.power)

newvehicles .filter(v=>!v.power) .map(v=>[v.speed,v.color,v.price*80%]) speed color price power 23 red 34.56 243 22 orange 14.56 233 12 green 34.56 53 1.2 grey 134.56 62 white 54.56