Функциональное программирование — различия между версиями
Alex z (обсуждение | вклад) м |
Alex z (обсуждение | вклад) (→Кр1) |
||
Строка 1: | Строка 1: | ||
=Кр1= | =Кр1= | ||
− | + | ==Убрать все сокращения и расставить все скобки== | |
− | |||
(λ a b . (λ c d e . e) a) (x y) y (λ f . x) y | (λ a b . (λ c d e . e) a) (x y) y (λ f . x) y | ||
− | + | ==Привести в нормальную форму== | |
λ a b . a (λ c . b c) a (λ d . d) a | λ a b . a (λ c . b c) a (λ d . d) a | ||
− | + | <br/> | |
− | |||
− | |||
λ a . (λ b . y) (λ c . y (y (λ d . a a a)) (x x) a) | λ a . (λ b . y) (λ c . y (y (λ d . a a a)) (x x) a) | ||
− | + | ==Нормальный порядок редукции== | |
− | |||
(λ a . y (y (y (λ b . a))) y) (x (x (x (λ c d . d) y)) x) | (λ a . y (y (y (λ b . a))) y) (x (x (x (λ c d . d) y)) x) | ||
− | + | ==Аппликативный порядок редукции== | |
+ | ==Выписать систему уравнений типизации== | ||
(λ a . a a) (λ b c . c) | (λ a . a a) (λ b c . c) | ||
− | + | ==Кодирование по Чёрчу== | |
+ | Выписать кайнды конструкторов типов, выписать типы конструкторов, закодировать по Чёрчу: | ||
data Policeman a = Doctor a | Mice | data Policeman a = Doctor a | Mice | ||
+ | <br/> | ||
data Tree a b c = Frog c | Pip (Tree a b c) | data Tree a b c = Frog c | Pip (Tree a b c) | ||
Версия 22:48, 25 апреля 2015
Содержание
Кр1
Убрать все сокращения и расставить все скобки
(λ a b . (λ c d e . e) a) (x y) y (λ f . x) y
Привести в нормальную форму
λ a b . a (λ c . b c) a (λ d . d) a
λ a . (λ b . y) (λ c . y (y (λ d . a a a)) (x x) a)
Нормальный порядок редукции
(λ a . y (y (y (λ b . a))) y) (x (x (x (λ c d . d) y)) x)
Аппликативный порядок редукции
Выписать систему уравнений типизации
(λ a . a a) (λ b c . c)
Кодирование по Чёрчу
Выписать кайнды конструкторов типов, выписать типы конструкторов, закодировать по Чёрчу:
data Policeman a = Doctor a | Mice
data Tree a b c = Frog c | Pip (Tree a b c)