Джон Харрисон
Университет Кембриджа
10 сентября 2008 г.
Темы
(λx y . x + y ) 1 2 = (λy . 1 + y ) 2 = 1 + 2
x −3=5−x
в
2x = 5 + 3
не раздумывая о том, какой за этим скрывается смысл.
Цитата Уайтхеда
Примитивная рекурсия: FV
FV (x) = {x}
FV (c) = ∅
FV (s t) = FV (s) ∪ FV (t)
FV (λx. s) = FV (s) − {x}
Подстановка
x[t/x] = t
Например:
Простая подстановка
x[t/x] = t
y [t/x] = y if x 6= y
c[t/x] = c
(s1 s2 )[t/x] = s1 [t/x] s2 [t/x]
(λx. s)[t/x] = λx. s
(λy . s)[t/x] = λy . (s[t/x]) if x 6= y
Подстановка переименовывания
Правила преобразования
Эквивалентность λ-термов
t=t
s=t
t=s
s = t and t = u
s=u
s=t
su=tu
s=t
us=ut
s=t
λx. s = λx. t
Джон Харрисон Введение в Функциональное программирование
Лекция 2. λ-исчисление как формальная система
λ-редукция
Вот «подправленное» определение эквивалентности λ-термов.
s −→ t or s −→ t or s −→ t
α β η
s −→ t
t −→ t
s −→ t and t −→ u
s −→ u
s −→ t
s u −→ t u
s −→ t
u s −→ u t
s −→ t
λx. s −→ λx. t
Стратегия вычислений
Теорема Чёрча-Россера
Комбинаторы
I = λx. x
K = λx y . x
S = λf g x. (f x)(g x)
Комбинаторная полнота