- num_equal? = ???
- empty = \f n. n
- cons = \x xs. \f n. f x xs
- take_while = Y (\take_while. \p xs. xs (\y ys. (p y) (cons y (take_while p ys)) empty) empty)
- drop_while = Y (\drop_while. \p xs. xs (\y ys. (p y) (drop_while p ys) ys) empty)
+ let num_equal? = ??? in
+ let neg = \b y n. b n y in
+ let empty = \f n. n in
+ let cons = \x xs. \f n. f x xs in
+ let take_while = Y (\take_while. \p xs. xs (\y ys. (p y) (cons y (take_while p ys)) empty) empty) in
+ let drop_while = Y (\drop_while. \p xs. xs (\y ys. (p y) (drop_while p ys) xs) empty) in
+ ...