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)

Slides