То, как вы вызываете функции в коде схемы, отличается от других.Эквивалентный питон будет:
double(double(double))(inc)(5)
Словом, код схемы создает функцию, которая применяет другую функцию 16 раз, и применяет эту функцию к inc
.Питон создает функции, которые применяются inc
8 раз;остальные работают так же, как питон.
Разница может быть немного яснее, если вы введете имена для промежуточных шагов.На схеме:
(define quadruple (double double))
(define hexadecuple (double quadruple)) ; hexadecuple may not actually be a word...
(define add16 (hexadecuple inc))
(add16 5)
Надеюсь, это правильный синтаксис;я давно уже ничего не делал со схемой
В питоне:
add2 = double(inc)
add4 = double(add2)
add8 = double(add4)
add8(5)