Книга Структура и интерпретация компьютерных программ , которую я читал, представляет церковные цифры путем определения нуля и функции приращения
zero: λf. λx. x
increment: λf. λx. f ((n f) x)
Это показалось мне довольно сложным, и потребовалосьМне очень долго приходилось разбираться в этом и выводить одно (λf.λx. f x
) и два (λf.λx. f (f x)
).
Не было бы намного проще вместо этого кодировать числа таким образом, чтобы ноль был пустымлямбда?
zero: λ
increment: λf. λ. f
Теперь тривиально получить один (λ. λ
) и два (λ. λ. λ
) и т. д.
Это кажется гораздо более очевидным и интуитивно понятным.способ представлять числа с лямбдами.Есть ли какая-то проблема с этим подходом и, следовательно, веская причина, почему церковные цифры работают так, как они работают?Этот подход уже подтвержден?