Роль продолжений в функциональном программировании заключается в том, что они обеспечивают математическое обоснование порядка выполнения программы. 1
Продолжения позволяют реализовать различные элементы программы посредством единой конструкции: от goto и циклов до рекурсии, исключений, генераторов, сопрограмм и механизма возврата. 1
Некоторые другие аспекты роли продолжений в функциональном программировании:
- Материализация «следующего шага». 2 Функция определяет, что нужно делать дальше: продолжить как «приказано» или сделать что-нибудь совсем другое. 2
- Сохранение состояния программы. 3 В объекте продолжения хранится информация, необходимая для возобновления выполнения программы с той точки, когда был запрошен объект продолжения. 3
- Оптимизация хвостовой рекурсии. 2 Продолжения позволяют строить элегантные выражения и просто оптимизировать хвостовую рекурсию. 2