AA
Size: a a a
AA
JM
AA
JM
AP
JM
AK
AP
AP
AP
к
nats n = n : nats (n + 1)
data IntList = Nil | Cons Int IntList
foldr f z [] = z
foldr f z (x:xs) = x `f` foldr f z xs
foldr Cons Nil (nats 0) =
0 `Cons` foldr Cons Nil (nats 1) =
0 `Cons` (1 `Cons` foldr Cons Nil (nats 2)) =
...
JM
nats n = n : nats (n + 1)
data IntList = Nil | Cons Int IntList
foldr f z [] = z
foldr f z (x:xs) = x `f` foldr f z xs
foldr Cons Nil (nats 0) =
0 `Cons` foldr Cons Nil (nats 1) =
0 `Cons` (1 `Cons` foldr Cons Nil (nats 2)) =
...
к
JM
JM
nats n = n : nats (n + 1)
data IntList = Nil | Cons Int IntList
foldr f z [] = z
foldr f z (x:xs) = x `f` foldr f z xs
foldr Cons Nil (nats 0) =
0 `Cons` foldr Cons Nil (nats 1) =
0 `Cons` (1 `Cons` foldr Cons Nil (nats 2)) =
...
к
isEmpty = foldr (\_ _ -> False) True
JM
isEmpty = foldr (\_ _ -> False) True
к
JM
isEmpty = foldr (\_ _ -> False) True
к