5 return f(l.hd) : map(f, l.tl);
13 return foldr(f, f(acc, l.hd), l.tl);
22 return filter(f, l.tl);
24 return l.hd : filter(f, l.tl);
33 return x : intList(x-1);
45 ap(f, x) { return f(x); }
51 return (ap(f, xs.hd)) : mapF(f, xs.tl);
62 var g = map(plus, [1,2,3]);
63 var is = mapF(\f->f(1), g);
64 //var is = map(\f->f(1), g);
68 //print("is.hd", is.hd);
70 print("f(4) = ", f(4));
72 print("faculty of 5 is: ", foldr(\x y->x*y, 1, intList(5)));
73 print("sum of 1..5 is: ", foldr(\x y->x+y, 0, intList(5)));
74 print("sum of 0..12 but only the evens: ",
75 foldr(\x y->x+y, 0, filter(\x->x%2 == 0, intList(12))));