Функциональное программирование

Материал из Викиконспекты
Перейти к: навигация, поиск

Кр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)

Кр2

Кр3

Кр4