有谁知道我在哪里可以找到哈斯克尔hGetLines实施
hGetLine :: Handle -> IO Text
功能的实现?我必须在具有多个子任务的haskell中实现一个HTTP服务器。第一种是写
hGetLines :: Handle -> IO [Text]
功能读取一切从IO通道,直到第一空行和线被返回作为文本的列表的执行。
有谁知道我在哪里可以找到哈斯克尔hGetLines实施
hGetLine :: Handle -> IO Text
功能的实现?我必须在具有多个子任务的haskell中实现一个HTTP服务器。第一种是写
hGetLines :: Handle -> IO [Text]
功能读取一切从IO通道,直到第一空行和线被返回作为文本的列表的执行。
你不需要知道如何hGetLine
实施要做到这一点:
hGetLines :: Handle -> IO [Text]
hGetLines h = do
line <- hGetLine h
if null line
then return []
else do
lines <- hGetLines h
return (line:lines)
找到它Hackage:https://hackage.haskell.org/package/base-4.6.0.1/docs/System-IO.html#v:hGetLine
点击 “来源” 链接:https://hackage.haskell.org/package/base-4.6.0.1/docs/src/GHC-IO-Handle-Text.html#hGetLine
阅读来源:
hGetLine h =
wantReadableHandle_ "hGetLine" h $ \ handle_ -> do
hGetLineBuffered handle_
但是如果你想写一个hGetLines
函数,你不需要知道hGetLine
已实施。您可以在执行hGetLines
时仅使用hGetLine
。
更是这样,我不认为'wantReadableHandle_'真的是你想使用的功能,所以在看这个实现是完全没用的。但请注意,他正在讨论'Data.Text.IO'中的'hGetLine',而不是标准库。 – alternative
@alternative您在所有帐户中都是正确的!我完全错过了文本类型签名。傻我。虽然同样的过程适用。 – kqr