在Haskell中编写Web应用程序的最简单方法是什么?

时间:2008-09-09 00:41:04

标签: web-applications haskell

我想在我的项目中更多地使用Haskell,我想如果我可以开始将它用于Web应用程序,那将真正有助于这个原因。我曾经尝试过一两次但很难开始。是否有更简单/更传统(更像灯)的框架,我可以使用或者我应该再次尝试再次尝试?

8 个答案:

答案 0 :(得分:16)

截至2011年的最佳工具是:

围绕Haskell的网络开发社区在这些社区之间的竞争中蓬勃发展。

作者甚至在这里比较他们的框架:Comparing Haskell's Snap and Yesod web frameworks

答案 1 :(得分:4)

如果您决定使用HApps,您可能想要查看这个正在开发为HApps应用程序的优秀示例驱动教程: HApps Tutorial

答案 2 :(得分:4)

我开发了MFlow,其功能/代码大小比例最高。 MFlow在没有其他框架的情况下制定,但是使用Haskell来解决Web应用程序的问题,从而大大降低Web编程中的噪声和错误率。 MFlow应用程序中的整个导航在编译时是安全的。它使用标准的Web库: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/

答案 3 :(得分:3)

答案 4 :(得分:2)

Web Application Interface,WAI,是一个非常好的基础层,您可以在其上构建应用程序。关于路由,模板等的hackage有许多很好的库,它们与WAI结合使用,这就是我的工作。

答案 5 :(得分:1)

您可以使用CGI和(x)html组合器库,如wiki的Haskell Web Development文章中所列。可以在Practical web programming in Haskell中找到有关haskell中的Web编程的库,框架等的更大概述。

答案 6 :(得分:1)

Yesod将是一个不错的选择,你可以在网上找到O'Reilly的Yesod Web Framework Book

答案 7 :(得分:0)

还有Hope(链接已弃用),但它似乎没有获得与HAppsWASH相同的牵引力。然而,该网站也已经安静了大约一年。