Каков самый простой способ писать веб-приложения в Haskell?

Я хотел бы использовать Haskell больше для своих проектов, и я думаю, что если я начну использовать его для веб-приложений, это действительно поможет. Я пробовал один или два раза, но у меня не было проблем с выходом на землю. Существуют ли более простые/более обычные (более похожие на лампы) рамки, которые я могу использовать, или мне просто нужно дать еще одну попытку?

Ответ 1

Лучшие инструменты по состоянию на 2011 год:

Сообщество веб-разработчиков по всему Haskell процветает на соревнованиях между этими сообществами.

Авторы даже сравнивают свои рамки здесь: Сравнение веб-фреймворков Haskell Snap и Yesod

Ответ 2

Если вы решите пойти с HApps, вы, вероятно, захотите проверить этот превосходный пример управляемого руководства, который разрабатывается как приложение HApps: Учебное пособие по HApps

Ответ 3

Я разработал MFlow с идеей о максимальном соотношении размеров функциональности и кода. MFlow сделан без каких-либо других концепций, но для того, чтобы использовать Haskell для решения проблем веб-приложений, чтобы резко снизить шум и коэффициент ошибок в веб-программировании. Вся навигация в приложении MFlow безопасна во время компиляции. Он использует стандартные веб-библиотеки: WAI, formlets, stm, blaze-html..

Судите сами: это полное приложение с тремя страницами. В цикле он запрашивает два числа и показывает сумму. вы можете нажать кнопку "Назад", как вам угодно:

module Main where
import MFlow.Wai.Blaze.Html.All

main= do
   addMessageFlows  [("sum", transient . runFlow $ sumIt )]
   wait $ run 8081 waiMessageFlow

sumIt= do
   setHeader $ html . body
   n1 <- ask $  p << "give me the first number"  ++>  getInt Nothing
   n2 <- ask $  p << "give me the second number" ++>  getInt Nothing
   ask $ p << ("the result is " ++ show (n1 + n2)) ++> wlink () << p << "click here"

Состояние может быть выполнено с небольшим изменением.

http://hackage.haskell.org/package/MFlow

Здесь есть примеры: http://haskell-web.blogspot.com.es/

Ответ 5

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

Ответ 7

Yesod будет хорошим выбором, вы можете найти O'Reilly Yesod Web Framework Book в Интернете.

Ответ 8

Существует также Hope (ссылка обесценивается), хотя, похоже, она не получила столько же тяги, сколько HApps и WASH. Тем не менее, сайт также был тихим около года.