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

Web applications 用Haskell编写web应用程序的最简单方法是什么?,web-applications,haskell,Web Applications,Haskell,我想在我的项目中更多地使用Haskell,我想如果我能开始在web应用程序中使用它,这将非常有帮助。我试过happs一两次,但在起步时遇到了困难。是否有更简单/更传统(更像lamp)的框架可供我使用,或者我应该再试试happs吗?这里是 此外,下一个大型Haskell web框架是 还有一个。您可以使用CGI和(x)html combinator库,如wiki文章中所列。有关haskell中web编程的库、框架等的更多概述,请参见。如果您决定使用HApps,您可能需要查看这本作为HApps应用程

我想在我的项目中更多地使用Haskell,我想如果我能开始在web应用程序中使用它,这将非常有帮助。我试过happs一两次,但在起步时遇到了困难。是否有更简单/更传统(更像lamp)的框架可供我使用,或者我应该再试试happs吗?

这里是

此外,下一个大型Haskell web框架是


还有一个。

您可以使用CGI和(x)html combinator库,如wiki文章中所列。有关haskell中web编程的库、框架等的更多概述,请参见。

如果您决定使用HApps,您可能需要查看这本作为HApps应用程序开发的优秀示例驱动教程:

还有(链接被贬值),尽管它似乎没有和和获得那么多的吸引力。然而,该网站也安静了大约一年。

截至2011年,最好的工具是:

  • );或
围绕Haskell的web开发社区在这些社区之间的竞争中蓬勃发展


作者甚至在这里比较了他们的框架:

是的,这将是一个不错的选择,你可以在网上找到O'Reilly。

WAI是一个非常好的基础层,你可以在上面构建应用程序。在hackage上有许多不错的库,用于路由、模板等,它们与WAI结合使用效果很好,这就是我所做的。

我开发MFlow的理念是实现最高的功能/代码大小比。MFlow没有考虑其他框架,而是尽可能地使用Haskell来解决web应用程序的问题,以大幅降低web编程中的噪音和错误率。MFlow应用程序中的整个导航在编译时是安全的。它使用标准的web库:WAI、Formlet、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"
modulemain其中
导入MFlow.Wai.Blaze.Html.All
main=do
addMessageFlows[(“sum”,transient.runFlow$sumIt)]
等待$run 8081消息流
sumIt=do
setHeader$html。身体

n1 CGI非常简单,特别是在运行Apache的系统上。您只需制作一个可执行文件,打印出一个HTML页面(或其中的一部分)。您可以解析url(GET)字符串,并使用环境变量从系统中获取POST数据。这很简单,但从这些片段构建一个系统需要付出努力。