Ⅰ
(1)
foo [] = True
foo (x:xs) = x `mod` 3 == 1 && foo xs
(2)
bar xs ys = [ (i,j) | i <- xs, j <- ys, i * j `mod` 6 == 0 ]
Ⅱ
(1)
(λ x y. x y y) (λ x y. y) (λ x y. x)
→ (λ y. (λ x y. y) y y) (λ x y. x)
→ (λ x y. y) (λ x y. x) (λ x y. x)
→ (λ y. y) (λ x y. x)
→ λ x y. x
(2)
(λ m n f. m (n f)) (λ s z. s (s z)) (λ s z. z)
→ (λ n f. (λ s z. s (s z)) (n f)) (λ s z. z)
→ λ f. (λ s z. s (s z)) ((λ s z. z) f)
→ λ f z. (λ s z. z) f ((λ s z. z) f z)
→ λ f z. (λ z. z) ((λ s z. z) f z)
→ λ f z. (λ s z. z) f z
→ λ f z. (λ z. z) z
→ λ f z. z
Ⅲ
(1) 26
(2) [(3,2),(5,2),(5,3),(5,4)]