如何理解Haskell函数参数
How to understand Haskell function parameters
在下面的函数定义中:
app :: Application
app _ respond = do
putStrLn "I've done some IO here"
respond $ responseLBS
status200
[("Content-Type", "text/plain")]
"Hello, Web!"
您好,app 函数似乎没有参数。为什么在上面的例子中有两个参数?
Application
是一种同义词。它被定义为:
<b>type</b> Application = Request -> (Response -> IO ResponseReceived) -> IO ResponseReceived
因此,它是一个接受 Request
的函数,以及一个将 Response
映射到 IO ResponseReceived
,然后生成 IO ResponseReceived
的函数。通常这样的函数会产生一个 Response
然后由响应 post 处理。
在下面的函数定义中:
app :: Application
app _ respond = do
putStrLn "I've done some IO here"
respond $ responseLBS
status200
[("Content-Type", "text/plain")]
"Hello, Web!"
您好,app 函数似乎没有参数。为什么在上面的例子中有两个参数?
Application
是一种同义词。它被定义为:
<b>type</b> Application = Request -> (Response -> IO ResponseReceived) -> IO ResponseReceived
因此,它是一个接受 Request
的函数,以及一个将 Response
映射到 IO ResponseReceived
,然后生成 IO ResponseReceived
的函数。通常这样的函数会产生一个 Response
然后由响应 post 处理。