Введение

Представление натуральных чисел как функций высшего порядка

В математике кодирование Черча — это способ представления данных и операторов в лямбда-исчислении. Числа Черча — это представление натуральных чисел с использованием лямбда-нотации. Метод назван в честь Алонзо Черча, который впервые таким образом закодировал данные в лямбда-исчислении. Термины, которые обычно считаются примитивными в других системах обозначений (такие как целые числа, булевы значения, пары, списки и объединения с тегами), отображаются в функции высшего порядка при кодировании Черча. Тезис Черча — Тьюринга утверждает, что любой вычислимый оператор (и его операнды) может быть представлен с помощью кодирования Черча. В нетипизированном лямбда-исчислении единственным примитивным типом данных является функция.

Рациональные и действительные числа

Рациональные и вычислимые действительные числа также могут быть закодированы в лямбда-исчислении. Рациональные числа могут быть закодированы как пара целых чисел с знаком. Вычислимые действительные числа могут быть закодированы посредством процесса стремления к пределу, который гарантирует, что отклонение от истинного значения может быть уменьшено до любой заданной величины. Приведенные ссылки описывают программное обеспечение, которое теоретически можно было бы перевести на лямбда-исчисление. После определения действительных чисел, комплексные числа естественным образом кодируются как пара действительных чисел. Описанные выше типы данных и функции демонстрируют, что любой тип данных или вычисление может быть закодировано в лямбда-исчислении. Это и есть тезис Черча — Тьюринга.

Представьте список с помощью правой складки

В качестве альтернативы кодированию с использованием пар Черча, список можно закодировать, отождествляя его с функцией правого свёртки. Например, список из трех элементов x, y и z можно закодировать функцией высшего порядка, которая при применении к комбинатору c и значению n возвращает c x (c y (c z n)). Это представление списка может быть типизировано в системе F.