-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclasswork19-3-2012.js
65 lines (55 loc) · 1.12 KB
/
classwork19-3-2012.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var apply = function(array){
var fun = array[0];
var arg = array[1];
return fun(arg);
}
var aa = function(fun){
return function(array){
var ret;
ret = array.map(fun);
return ret;
}
}
var comp2 = function(funArray){
return function(arg){
var f = funArray[0];
var g = funArray[1];
return f(g(arg));
}
}
var compn = function(funArray){
return function(args){
var fun = funArray.reduce(function(prev,curr){
return function(x){
return prev(curr(x))}})
return fun(args);
}
}
var compnVar = function(funArray){
return function(args){
var fun = funArray.reduce(function(prev,curr){return comp2([prev,curr])})
return fun(args);
}
}
var cons = function(funArray){
return function(arg){
var ret = [];
for (var i = 0; i < funArray.length; i++){
ret.push(funArray[i](arg)) }
return ret;
}
}
var distributeLeft = function(array){
return function(x){
return array.map(function(item){return [x,item]})
}
}
var trans = function(array){
var ret;
for (var i = 0; i < array.length; i++){
for (var j = 0; j < array[i].length; j++){
(ret[j] = ret[j] || [])[i] = array[i][j];
}
}
return ret;
}