aboutsummaryrefslogtreecommitdiff
path: root/examples/fold.fusp
blob: a68d671fa3b9b7631ad91265270820e56755064f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mul a b = code mul a b;
sub a b = code sub a b;

foldr op r []    = r;
foldr op r [a:x] = op a (foldr op r x);

prod = foldr mul 1;

faclist 0 = [];
faclist n = [n:faclist (sub 1 n)];

fac n = prod (faclist n);

main = fac 4;