gpt4 book ai didi

haskell - Haskell中的句柄是半封闭错误?

转载 作者:行者123 更新时间:2023-12-04 22:43:14 25 4
gpt4 key购买 nike

我在 GHCI 中收到此错误:
*** Exception: <stdin>: hGetLine: illegal operation (handle is semi-closed)
运行此代码后:

main = do
interact $ unlines . fmap proccess . take x . lines
readLn :: IO Int

我很确定原因是 take x .有没有更好的阅读方式 仅限 x 行输入使用交互 interact只是一个单人玩家?

最佳答案

interact 无法实现您想要做的事情.幕后 interact声称全部 stdin为自己使用 hGetContents .这会将句柄置于“半关闭”状态,阻止您尝试与句柄进行任何进一步的交互,而不是关闭它,因为它的全部输入已经被消耗(懒惰地)。

尝试阅读有限的行数——

import Control.Monad (replicateM)

getLines :: Int -> IO [String]
getLines n = replicateM n getLine

关于haskell - Haskell中的句柄是半封闭错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com