Функциональное программирование
Версия от 22:18, 25 апреля 2015; Alex z (обсуждение | вклад)
Кр1
1) Убрать все сокращения и расставить все скобки:
(λ a b . (λ c d e . e) a) (x y) y (λ f . x) y
2) Привести в нормальную форму
λ a b . a (λ c . b c) a (λ d . d) a
3) Привести в нормальную форму
λ a . (λ b . y) (λ c . y (y (λ d . a a a)) (x x) a)
4) Сделать две редукции нормальным порядком:
(λ a . y (y (y (λ b . a))) y) (x (x (x (λ c d . d) y)) x)
5) Выписать систему уравнений типизации
(λ a . a a) (λ b c . c)
6) Выписать кайнды конструкторов типов, выписать типы конструкторов, закодировать по Чёрчу:
data Policeman a = Doctor a | Mice data Tree a b c = Frog c | Pip (Tree a b c)