我想使用Haskell中的Warp网络服务器创建一个网站。

因为我是Haskell的初学者,所以像this one这样的示例对我来说太复杂了。

谁能给我展示一个简单的,最小的使用Warp的例子吗?

注意:这个问题有意显示没有研究成果,因为它以问答形式回答。

最佳答案

这是使用Warp 3.0+的最小Hello World应用程序。运行它,然后导航到http://localhost:3000。此示例将显示Hello world

为了使该示例最小化,根本不处理URL路径(对于任何路径都传递相同的内容)。有关合并URL路径处理的稍长示例,请参见the Haskell Wiki

{-# LANGUAGE OverloadedStrings #-}

import Network.Wai (responseLBS, Application)
import Network.Wai.Handler.Warp (run)
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)

main = do
    let port = 3000
    putStrLn $ "Listening on port " ++ show port
    run port app

app :: Application
app req f =
    f $ responseLBS status200 [(hContentType, "text/plain")] "Hello world!"

2014年6月20日更新:Warp 3.0包含一些API更改-反射(reflect)在代码中。

08-07 16:15