Вопросы с тегом «continuation»

20
Y комбинатор и оптимизация хвостовых вызовов

Определение Y комбинатора в F # let rec y f x = f (y f) x В качестве первого аргумента f ожидает продолжения рекурсивных подзадач. Используя yf в качестве продолжения, мы видим, что f будет применяться к последовательным вызовам, поскольку мы можем развить let y f x = f (y f) x = f (f (y f)) x = f...

19
Какие есть альтернативы использованию стека для представления семантики вызова функции?

Мы все знаем и любим, что вызовы функций обычно реализуются с использованием стека; Есть кадры, обратные адреса, параметры, все много. Однако стек является деталью реализации: соглашения о вызовах могут делать разные вещи (например, x86 fastcall использует (некоторые) регистры, MIPS и последователи...

15
Что является примером продолжения, не реализованного как процедура?

Интересная дискуссия о различии между обратными вызовами и продолжениями SO подтолкнула этот вопрос. По определению, продолжение является абстрактным представлением логики, необходимой для завершения вычисления. В большинстве языков это проявляется как процедура с одним аргументом, которой вы...

10
Как вы читаете код с продолжениями / обратными вызовами?

Описание: Существуют ли какие-то хорошо зарекомендовавшие себя шаблоны наилучшей практики, которым я могу следовать, чтобы сохранить мой код читабельным, несмотря на использование асинхронного кода и обратных вызовов? Я использую библиотеку JavaScript, которая делает много вещей асинхронно и сильно...

10
Полезны ли первоклассные продолжения в современных объектно-ориентированных языках программирования?

Продолжения чрезвычайно полезны в функциональных языках программирования (например, в Contмонаде в Haskell), поскольку они допускают простую и регулярную запись кода императивного стиля. Они также полезны в некоторых старых императивных языках, потому что их можно использовать для реализации...