haskell hGetLines 实现
haskell hGetLines implementation
有谁知道我在哪里可以找到
hGetLine :: Handle -> IO Text
功能实现?我必须在 haskell 中实现一个具有多个子任务的 HTTP 服务器。第一个是写一个
的实现
hGetLines :: Handle -> IO [Text]
从 IO 通道读取所有内容直到第一个空行并且这些行作为文本列表返回的函数。
在 Hackage 上找到它:https://hackage.haskell.org/package/base-4.6.0.1/docs/System-IO.html#v:hGetLine
点击"source" link: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
您不需要知道 hGetLine
是如何实现的:
hGetLines :: Handle -> IO [Text]
hGetLines h = do
line <- hGetLine h
if null line
then return []
else do
lines <- hGetLines h
return (line:lines)
有谁知道我在哪里可以找到
hGetLine :: Handle -> IO Text
功能实现?我必须在 haskell 中实现一个具有多个子任务的 HTTP 服务器。第一个是写一个
的实现hGetLines :: Handle -> IO [Text]
从 IO 通道读取所有内容直到第一个空行并且这些行作为文本列表返回的函数。
在 Hackage 上找到它:https://hackage.haskell.org/package/base-4.6.0.1/docs/System-IO.html#v:hGetLine
点击"source" link: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
您不需要知道 hGetLine
是如何实现的:
hGetLines :: Handle -> IO [Text]
hGetLines h = do
line <- hGetLine h
if null line
then return []
else do
lines <- hGetLines h
return (line:lines)