Изменения

Перейти к: навигация, поиск

Лямбда-исчисление

1 байт добавлено, 18:10, 8 января 2015
Нет описания правки
Каждое число будет функцией двух аргументов: какой-то функции и начального значения.
Число <tex>n</tex> будет <tex>n</tex> раз применять функцию к начальному значению и возвращать
результат. Если такому <<"числу>> " дать на вход функцию <tex>(+1)</tex> и <tex>0</tex> в качестве
начального значения, то на выходе как раз будет ожидаемое от функции число:
<tex>\bar 3\ (+1)\ 0 \equiv 3</tex>.
Функция, прибавляющая 1 к числу, должна принимать первым аргументом число.
Но число {{---}} функция двух аргументов. Значит, эта функция должна принимать три
аргумента: <<"число>> " <tex>n</tex>, которое хочется увеличить, функция, которую надо будет
<tex>n+1</tex> раз применить, и начальное значение.
<tex>\operatorname{and} = \lambda n\ .\ \lambda m\ .\ \operatorname{if} n\ m\ \operatorname{false}</tex>
<tex>\operatorname{or} = \lambda n\ .\ \lambda m\ .\ \operatorname{if} n\ \operatorname{true} \ m</tex>
<tex>\operatorname{not} = \lambda b\ .\ \operatorname{if} b\ \operatorname{false} \ \operatorname{true}</tex>
Ещё одной важной функцией является функция проверки, является ли число нулём:
Анонимный участник

Навигация