История изменений
Исправление Virtuos86, (текущая версия) :
(define (f/apply ff . fn)
(lambda args (apply ff (map (lambda (f) (apply f args)) fn))))
Ложь. Знаешь, в чем проблема этой записи? Здесь пользовательские функции и переменные идут вперемешку со служебными. map
lambda
apply
f
args
fn
… Если глаз привык видеть структуру — ок, в противном случае полный атас. Даже в моем варианте с питоньими лямбдами нет такой мешанины. Форматирование, конечно, сильно исправит ситуацию, но в питоне оно принудительное, а в схеме, как видно, этим нормально брезговать.
Звёздочки нужны для записи вариадиков, это да, не зная, можно сильно озадачиться)
Исходная версия Virtuos86, :
(define (f/apply ff . fn)
(lambda args (apply ff (map (lambda (f) (apply f args)) fn))))
Ложь. Знаешь, в чем проблема этой записи? Здесь пользовательские функции и переменные идут вперемешку со служебными. map
lambda
apply
f
args
fn
… Если глаз привык видеть структуру — ок, в противном случае полный атас. Даже в моем варианте с питоньими лямбдами нет такой мешанины. Звёздочки нужны для записи вариадиков, это да, не зная, можно сильно озадачиться)