Одна из самых эзотерических тем в программировании и computer science это продолжения (continuations), ограниченные продолжения (delimited continuations) и continuation-passing style. Я попытаюсь раскрыть эту тему понятным для обычного программиста языком. Предполагается, что обычный программист знаком с понятиями функции/подпрограммы, фрейма вызова (stack frame), а также имеет базовое знания языка Scheme, хотя бы на уровне первых глав SICP. Читать далее
Рациональность это:Не про идеальный интеллект и отрицание интуицииНе про эгоизм и получить всё здесь и сейчасНе про обладание истинойНе про измениться раз и навсегдаНе про отсутствие эмоцийНе про критику других людейНе про высмеивание штук вроде гомеопатии, астрологии и плоской землиНе про риторику и умение донести свою позициюНе про шагание по головам и победу за чужой счётНе про борьбу за правду А про что же?
В Swift были представлены новые функции, которые помогают нам адаптировать старые API в стиле completionhandler к современному асинхронному коду.Например, эта функция возвращает свои значения асинхронно, используя обработчик завершения: Читать далее
В первой части статьи мы рассмотрели общую семантику применения функции в различных языках программирования и реализацию императивного вызова функции в машинном коде в стековом и бесстековом вариантах. Теперь мы рассмотрим теорию и практику реализации императивного вызова функции в модели продолжений (continuations): что такое продолжения, зачем нужны явные и неявные продолжения, как при помощи продолжений реализовать различные используемые в языках программирования управляющие конструкции. Читать далее