континуации, в принципе, позволяют реализовать конечный автомат в пределах одной функции. но это одно из применений. (в другой терминологии — «сопрограмма с самой собой»).
но автомат подразумевает набор состояний и набор переходов между ними.
континуации сами по себе это не предполагают. они предполагают только «возврат».
автоматы это всётаки перпендикулярный подход.
в частности, эти подходы никак не пересекаются если подумать о недетерминированных автоматах с нечётким состоянием, котрые на континуациях ну никак не вписываются.
да нет. продолжения какраз для того и придуманы, чтобы сохранять состояние.
это основная их функция.
а то, что на них можно делать итераторы, сопрограммы, и прочее — следствие.
Более удобный для императивно- и функционально- ориентированных разработчиков, для которых привычнее описывать логику работы приложения путём декомпозиции на отдельные функциональные точки и программированием каждой точки в отдельном блоке (функции, модуле, объекте), а не развермишеливая её по REST-ориентированным запросам.
Разумеется, для веб разработчика, уже набившего руку на запрос-ответах, это непривычно. Поэтому и стоит тэг «новый взгляд».
Приемущества:
более последовательное описание логики,
отсутствие необходмости заботиться о сохранении состояния,
отсутствие проблемы кнопки «back» и «clone» (иллюстрировано картинками в «Inverting back the inversion»).
Если эти приемущества не очевидны, то можно сказать так:
Это не поможет решить какие-то принципиально новые проблемы.
Это поможет избежать большинства проблем и задач, возникающих при разработке веб-приложений.
Более удобный для императивно- и функционально- ориентированных разработчиков, для которых привычнее описывать логику работы приложения путём декомпозиции на отдельные функциональные точки и программированием каждой точки в отдельном блоке (функции, модуле, объекте), а не развермишеливая её по REST-ориентированным запросам.
Разумеется, для веб разработчика, уже набившего руку на запрос-ответах, это непривычно. Поэтому и стоит тэг «новый взгляд».
Приемущества:
более последовательное описание логики,
отсутствие необходмости заботиться о сохранении состояния,
отсутствие проблемы кнопки «back» и «clone» (иллюстрировано картинками в «Inverting back the inversion»).
Если эти приемущества не очевидны, то можно сказать так:
Это не поможет решить какие-то принципиально новые проблемы.
Это поможет избежать большинства проблем и задач, возникающих при разработке веб-приложений.
«Классика» — это алгоритм Дейкстры, который использует таки один стэк — операторов.
А операнды складываются в «выходную строку» вместе со знаками.
Потомучто, в частности, с переменными, сразу результат может не вычисляться, но транслироваться в какое-нибудь лямбда-выражение.
Ну и приоритет вроде обычно считается большим у тех операторов, чьё связывание операндов раньше. Тоесть у "*" приоритет выше чем у "+".
Хотя и обозначается традиционно меньшим числом.
Надо будет поглядеть этот экспертСКС.
Гугл-картинки находит вместо скриншотов только сертификаты.
Это создаёт впечатление, что это ОЧЕНЬ крутая система и как она выглядит — уже не принципиально :)
А вот затраты (в телодвижениях) по биркам как-то сомнительно, чтобы были меньше чиркания маркером.
тоесть я почти сам себе и кабельщик :)
но автомат подразумевает набор состояний и набор переходов между ними.
континуации сами по себе это не предполагают. они предполагают только «возврат».
автоматы это всётаки перпендикулярный подход.
в частности, эти подходы никак не пересекаются если подумать о недетерминированных автоматах с нечётким состоянием, котрые на континуациях ну никак не вписываются.
я там даже коммент оставил.
в оргинале статьи был ещё более явный пример на scheme.
но я побоялся ломать мозг ещё и этим :)
это основная их функция.
а то, что на них можно делать итераторы, сопрограммы, и прочее — следствие.
но фонетически, слово «кабель» вполне вписывается в парадигму словоизменения типа «якорь», «дюбель», «крендель», «вензель», итп.
поэтому моё написание можно считать формой коллоквиализма или же хакерской перегенерализацией :)
ain't a native speaker :)
Разумеется, для веб разработчика, уже набившего руку на запрос-ответах, это непривычно. Поэтому и стоит тэг «новый взгляд».
Приемущества:
более последовательное описание логики,
отсутствие необходмости заботиться о сохранении состояния,
отсутствие проблемы кнопки «back» и «clone» (иллюстрировано картинками в «Inverting back the inversion»).
Если эти приемущества не очевидны, то можно сказать так:
Это не поможет решить какие-то принципиально новые проблемы.
Это поможет избежать большинства проблем и задач, возникающих при разработке веб-приложений.
вот тут предлагается какаято библиотека для эмуляции продолжений в пхп.
там какраз класс, от которого можно унаследовать такое приложение.
Разумеется, для веб разработчика, уже набившего руку на запрос-ответах, это непривычно. Поэтому и стоит тэг «новый взгляд».
Приемущества:
более последовательное описание логики,
отсутствие необходмости заботиться о сохранении состояния,
отсутствие проблемы кнопки «back» и «clone» (иллюстрировано картинками в «Inverting back the inversion»).
Если эти приемущества не очевидны, то можно сказать так:
Это не поможет решить какие-то принципиально новые проблемы.
Это поможет избежать большинства проблем и задач, возникающих при разработке веб-приложений.
возможно, это слегка прояснит целесообразность приобретения Экспертов и принтеров :)
А операнды складываются в «выходную строку» вместе со знаками.
Потомучто, в частности, с переменными, сразу результат может не вычисляться, но транслироваться в какое-нибудь лямбда-выражение.
Ну и приоритет вроде обычно считается большим у тех операторов, чьё связывание операндов раньше. Тоесть у "*" приоритет выше чем у "+".
Хотя и обозначается традиционно меньшим числом.
Гугл-картинки находит вместо скриншотов только сертификаты.
Это создаёт впечатление, что это ОЧЕНЬ крутая система и как она выглядит — уже не принципиально :)
А вот затраты (в телодвижениях) по биркам как-то сомнительно, чтобы были меньше чиркания маркером.
Master's Thesis: Mediating User Interaction in Narrative-Structured Virtual Environments
В которой предлагаются методы, в том числе — обхода «тупиковых квестов».
А в общем случае — адаптирование сюжета к действиям игрока, чтобы он не сбивался с задуманной сюжетной линии.