首页 / 知识

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

2023-04-14 15:27:00

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

What is the simplest way to write web apps in Haskell?

我想在我的项目中更多地使用Haskell,并且我认为,如果我可以开始将其用于Web应用程序,那将真的有帮助。 我曾经尝试过一两次幸福,但遇到麻烦。 有没有我可以使用的更简单/更常规的(更像是灯)框架,还是应该让happs再尝试一次?


截至2011年,最佳工具是:

  • 捕捉
  • 是的要么
  • Happstack

Haskell周围的Web开发社区在这些社区之间的竞争中一直蓬勃发展。

作者甚至在这里比较了他们的框架:比较Haskells Snap和Yesod Web框架


我以最高的功能/代码大小比的想法开发了MFlow。 MFlow是在没有其他框架的情况下设计的,而是最大限度地使用Haskell解决Web应用程序的问题,从而大幅降低Web编程中的噪音和错误率。 MFlow应用程序中的整个导航在编译时是安全的。它使用标准的Web库:WAI,formlets,stm,blaze-html。

自己判断:这是一个完整的应用程序,分为三页。在一个循环中,它要求两个数字并显示总和。您可以根据需要按"后退"按钮:

1
2
3
4
5
6
7
8
9
10
11
12
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/


如果您决定使用HApps,则可能需要查看这个出色的示例驱动教程,该教程正在作为HApps应用程序开发:
HApp教程


这是来自Wiki的与Haskell相关的网络博客文章列表。

此外,下一个主要的Haskell Web框架是WASH。

并且有一种基于Apple WebObjects的领域特定语言。


Web应用程序接口WAI是一个非常好的基础层,您可以在其上构建应用程序。有很多不错的关于黑客的库,用于路由,模板等,可以与WAI结合使用,这就是我的工作。


Yesod将是一个不错的选择,您可以在线找到O'Reilly的Yesod Web框架书。


您可以使用CGI和(x)html组合器库,如Wiki的Haskell Web开发文章中所列。在Haskell的实用Web编程中可以找到有关Haskell的Web编程的库,框架等的较大概述。


还有一个希望(链接已贬值),尽管它似乎没有像HApps和WASH那样吸引人。但是,该站点也已经安静了大约一年。


应用程序方法项目用于

最新内容

相关内容

猜你喜欢