map, filter, reduce, folds, for-each, варианты vector/string и apply вызывают гостевые процедуры через путь применения evaluator.
Кратко
LISPEX
(fold-right cons (list) (list 1 2 3))Результат
OUTPUT
(1 2 3)Текущие гарантии
- Обход идёт слева направо; ошибки или escapes callback распространяются по общему пути сигналов.
fold-left— псевдоним левой свёртки;fold-rightвызывает(f element accumulator)справа.for-eachвыполняется ради эффекта и возвращает профильный unspecified-result как ноль значений.
Контракты callback
| Сигнатура | Обход / результат | Контекст значений |
|---|---|---|
| (map proc list ...) | слева направо; новый proper list | callback ровно одно значение |
| (filter predicate list) | слева направо; сохранённые элементы | predicate ровно одно значение; отвергает только #f |
| (fold-left proc init list) | левый accumulator | callback ровно одно значение |
| (apply proc arg ... final-list) | общий dispatcher; хвостовая безопасность | пакет результата процедуры сохранён |
| (for-each proc list ...) | эффекты слева направо | callback одно значение; итог ноль значений |
Границы
- Host callbacks не обходят правила гостевых continuation, handler или value context.