i
Errata
Some changes needed in fun1
and fun3
:
fun1 xx = aux xx 0
where aux [] a = a
aux (x:xs) a | even x = aux xs (a-1) -- add 'a' on left side
| odd x = aux xs (a+1)
fun3 n = aux n 1 1
where aux 1 f1 f2 = f1 -- change to 1 to match original function
aux n f1 f2 = aux (n-1) f2 (f1 + f2)