(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)]