4 done
define instead of letrec
5 and 6 done