Вызов-с-текущим-продолжением
-
Основы call/cc в Scheme
- call/cc используется для управления потоком выполнения в Scheme.
- Он был принят другими языками программирования и позволяет фиксировать текущее продолжение выражения.
- Текущее продолжение может быть восстановлено после применения функции к нему.
-
Примеры использования call/cc
- call/cc может эмулировать оператор return в языках C-стиля.
- Он также может использоваться для приостановки итерации по списку.
- В примере совместной многозадачности call/cc используется для передачи управления между задачами.
-
Критика и отношение к неконструктивной логике
- Олег Киселев критикует использование call/cc и предлагает альтернативы с разделителями.
- call/cc связан с законом Пирса, который расширяет интуиционистскую логику на классическую.
-
Языки, поддерживающие call/cc
- Scheme, Ракетка, ML, Хаскелл, Рубин, Унламбда, C++, R являются языками, которые поддерживают call/cc.