Я пытаюсь понять функцию возведения в степени на Чёрче:лямбда-исчисление (SML) - Нанести церковный номер другого
fun power m n f = n m f;
В нем я вижу умножение. Я знаю, что это неправильно, потому что умножение:
fun times m n f = m (n f);
и я думаю, что понял это.
Проблема в том, что я не могу понять, какая функция вызывает применение номера церкви к другому.
Например, что производит это выражение?
(fn x => fn y => x (x y)) (fn x => fn y => x (x (x y)));
Благодаря
Они получают формулу мощности в статье Википедии: https://en.wikipedia.org/wiki/Church_encoding –