я наткнулся на двух следующих определений функций:разница между n_times и цепи
function n_times(f, n) {
if (n === 1) {return f;}
else {
return function(x) {
return f((n_times(f, n - 1)) (x));
}
}
}
function chain(f, n) {
if(n === 1) {
return f;
} else {
return (chain(f, n - 1)) (f);
}
}
Я не могу показаться, чтобы выяснить разницу между ними. Применение модели подстановки предлагает следующее:
для цепи: chain(f, 3) (x) = f(f(f(x))))
для n_times: n_times(f, 3) (x) = f((f(f(x))) (x))
Таким образом, существует более одной переменной в случае n_times.
Любая помощь была бы принята с благодарностью.
Большое спасибо в продвинутом виде.
Я вижу, я должен испортили где-то. Но в любом случае два эквивалента? Спасибо – user3146687
Нет, очевидно, нет, они расширяются до чего-то другого. Также рассмотрите, какой тип 'f' должен иметь в двух выражениях. – Bergi