Я искал имя процедуры, которая применяет древовидную структуру процедур к древовидной структуре данных, давая древовидную структуру результатов - все три дерева имеют одинаковую структуру.Существует ли такая процедура в стандарте Схемы, и да, как она называется?
Такая процедура может иметь подпись:
(map-tree data functree)
Возвращаемое значение будет результатом поэлементного применения элементов functree на соответствующих элементов данных.
Примеры (при условии, что процедура называется карта-дерево):
Пример 1:
(define *2 (lambda (x) (* 2 x))) ; and similar definitions for *3 and *5 (map-tree '(100 (10 1)) '(*2 (*3 *5)))
давали бы результата
(200 (30 5))
Пример 2:
(map-tree '(((aa . ab) (bb . bc)) (cc . (cd . ce))) '((car cdr) cadr))
дает результат
((aa bc) cd)
Однако я не нашел такой функции в документации SLIB, с которой я консультировался.
Выполняется ли такая процедура?
Если нет, то каким будет подходящее имя для процедуры и как вы можете заказать его аргументы?
Верно, но тогда вам придется использовать eval, и большинство Schemers расскажут вам, что обычные программы не должны использовать eval. – 2008-09-19 07:48:56