ding
[cc1516.git] / examples / higher.spl
1 //map(f, l){
2 // if(isEmpty(l)){
3 // return [];
4 // } else {
5 // return f(l.hd) : map(f, l.tl);
6 // }
7 //}
8 //
9 //foldr(f, acc, l){
10 // if(isEmpty(l)){
11 // return acc;
12 // } else {
13 // return foldr(f, f(acc, l.hd), l.tl);
14 // }
15 //}
16 //
17 //filter(f, l){
18 // if(isEmpty(l)){
19 // return [];
20 // } else {
21 // if(f(l.hd)){
22 // return filter(f, l.tl);
23 // } else {
24 // return l.hd : filter(f, l.tl);
25 // }
26 // }
27 //}
28 //
29 //intList(x){
30 // if(x <= 1){
31 // return [x];
32 // } else {
33 // return x : intList(x-1);
34 // }
35 //}
36
37 plus3(x, y, z){
38 return x + y;
39 }
40
41 plus(x, y){
42 return x+y;
43 }
44
45 apply(f, x){
46 return f(x);
47 }
48
49 ap2(f, g, x){
50 return f(g(x));
51 }
52
53 main(){
54 // print("faculty of 5 is: ", foldr(\x y->x*y, 1, intList(5)));
55 // print("sum of 1..5 is: ", foldr(\x y->x+y, 0, intList(5)));
56 // print("filter evens from 0..12 is: ");
57 // print("sum of 0..12 but only the evens: ",
58 // foldr(\x y->x+y, 0, filter(\x->x%2 == 0, intList(12))));
59
60 var a = plus3;
61 var b = a(1);
62 var c = b(2);
63 var d = c(3);
64 }