Ваши церковные цифры кодируются лямбдами.Чтобы увидеть их эффект, вы должны предоставить функцию и вход.inc
и 0
используются ниже.В противном случае церковная цифра является не оцененной функцией.В JavaScript, когда вы console.log
функция, исходный код функции печатается.
const succ =
n => s => z => s(n(s)(z))
const inc = x =>
x + 1
const c0 =
s => z => z
const c1 =
succ (c0)
const c2 =
succ (c1)
console .log
( c0 (inc) (0) // 0
, c1 (inc) (0) // 1
, c2 (inc) (0) // 2
, succ (c2) (inc) (0) // 3
)
Выше c2
равно succ(succ(c0))
, что является церковной цифрой 2. Применение нашей церковной цифры к функции inc
и входному значению 0
, функция вызывается два (2) раза.c2 (inc) (0)
дает тот же результат, что и inc(inc(0))