В Язык программирования схемы от Kent Dybvig (4-е издание) раздел 3.4, он очень четко описывает, что такое стиль продолжения прохождения. Почему он дает две причины:
- передать более одного результата его продолжению, потому что процедура, реализующая продолжение, может принимать любое количество аргументов.
- CPS также позволяет процедуре принимать отдельные продолжения..., которые могут принимать разные количества аргументов.
Поскольку первая причина также может быть выполнена с помощью процедуры values
, а вторая с использованием case-lambda
, я не понимаю преимущества использования стиля продолжения передачи. Может ли кто-нибудь показать мне некоторые примеры того, где подходит стиль продолжения прохождения, где он делает код лучше, понятнее и т.д.?