如何理解Haskell函数参数

如何理解Haskell函数参数,haskell,signature,Haskell,Signature,在以下函数定义中: app :: Application app _ respond = do putStrLn "I've done some IO here" respond $ responseLBS status200 [("Content-Type", "text/plain")] "Hello, Web!" 您好,应用程序函数似乎不接受参数。为什么在上面的示例中有两个参数?是类型同义词。其定义如下: type Appl

在以下函数定义中:

app :: Application
app _ respond = do
    putStrLn "I've done some IO here"
    respond $ responseLBS
        status200
        [("Content-Type", "text/plain")]
        "Hello, Web!"
您好,应用程序函数似乎不接受参数。为什么在上面的示例中有两个参数?

是类型同义词。其定义如下:

type Application = Request -> (Response -> IO ResponseReceived) -> IO ResponseReceived
type Application=Request->(Response->IO ResponseReceived)->IO ResponseReceived

因此,它是一个接受
请求
的函数,以及一个将
响应
映射到
接收到的IO响应
的函数,然后生成一个
接收到的IO响应
。通常,此类函数会生成一个
响应
,然后由响应进行后处理。

它确实生成
应用程序
请求->(响应->IO响应接收)->IO响应接收的类型同义词