2014-12-29 3 views
8

Иногда я встречаю понятие веб-фреймворков на основе продолжения для Haskell. Что именно это значит?Что такое веб-фреймворк продолжения Haskell?

Продолжения, поскольку я их знаю, являются славными структурами управления переходом. Я не вижу, как они относятся к веб-материалам.

Что именно будет использовать продолжение?

ответ

5

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

+0

Как «Продолжение, на которое ссылается, является остальной частью действия, которое пользователь начал». иметь смысл, когда http не имеет гражданства. Также я не понимаю, что вы подразумеваете под «одним императивным действием может запросить отображение нескольких страниц». – user782220

+0

HTTP не был апатридом, поскольку были изобретены файлы cookie. – Carl

+0

Таким образом, смысл продолжения здесь не означает, что некоторая лямбда, представляющая взвешенное вычисление, сохраняется в памяти до следующего соответствующего действия. Как-то cookie используется для создания чего-то представляющего, где заканчивается последний запрос? – user782220

4

Канонический веб-фреймворк для Haskell основан на venerable WASH system.

Идея состоит в том, чтобы зафиксировать состояние в продолжении, позволяя полностью RESTful, безгосударственные веб-приложения, которые в некоторых случаях могут генерироваться автоматически из версии программы, не связанной с продолжением.

С "WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms": (2001):

Основная идея заключается в том, чтобы использовать продолжение, чтобы сделать снимок состояния сценария после отправки формы в браузере. Это продолжение затем сохраняется на сервере, и форма содержит ключ для последующего извлечения продолжения.

Современное описание подхода приведено в обзоре the MFlow Monad Reader.

 Смежные вопросы

  • Нет связанных вопросов^_^