Ⅰ
(1)
foo [] = 0
foo (x:xs) = if x<0 then 1 + foo xs else foo xs
(2)
bar xs = [ (x,y,z) | x<-xs, y<-xs, y==x+1, z<-xs, z==y+1 ]
Ⅱ
(1)
(λx y. y x y) (λz w. z) (λx y. y)
→ (λy. y (λz w. z) y) (λx y. y)
→ (λx y. y) (λz w. z) (λx y. y)
→ (λy. y) (λx y. y)
→ λx y. y
(2)
(λm n f. m (n f)) (λs z. s (s z)) (λs z. s (s (s z)))
→ (λn f. (λs z. s (s z)) (n f)) (λs z. s (s (s z)))
→ λf. (λs z. s (s z)) ((λs z. s (s (s z))) f)
→ λf z. (λs z. s (s (s z))) f ((λs z. s (s (s z))) f z)
→ λf z. (λz. f (f (f z))) ((λs z. s (s (s z))) f z)
→ λf z. f (f (f ((λs z. s (s (s z))) f z)))
→ λf z. f (f (f ((λz. f (f (f z))) z)))
→ λf z. f (f (f (f (f (f z)))))
Ⅲ
(1) 11
(2) [1,3,5,0,2,4,1,3]