我想在我的项目中更多地使用Haskell,我想如果我可以开始将它用于Web应用程序,那将真正有助于这个原因。我曾经尝试过一两次但很难开始。是否有更简单/更传统(更像灯)的框架,我可以使用或者我应该再次尝试再次尝试?
答案 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"
只需稍加修改就可以使状态持久。
答案 3 :(得分:3)
这是a list of web related blog posts about Haskell from the wiki。
此外,下一个重要的Haskell Web框架是WASH。
答案 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)