나는 GHCI에서이 오류를 얻고있다핸들이 Haskell에서 반 폐쇄 된 오류입니까? 이 코드를 실행 한 후</p> <p><code>*** Exception: <stdin>: hGetLine: illegal operation (handle is semi-closed)</code></p> <p>을 :
main = do
interact $ unlines . fmap proccess . take x . lines
readLn :: IO Int
그리고 나는 원인이 take x
입니다 확신합니다. x 행만 입력하여 읽을 수있는 방법이 있습니까 또는은 interact
솔로 플레이어입니까?
'interact'는 stdin을 반 폐쇄 상태로 만듭니다. 귀하의 함수가 처음 제대로 작동했다고 가정하고 그 후에 다른 모든 호출이 실패했다고 생각합니까? GHCi를 닫았다가 다시 열거 나 프로그램을 컴파일하고 실행하십시오. –
정확히, 'stdin'의 모든 읽기가 실패했습니다. –
참고로 ghci를 닫았다가 다시 열어 다른 방법으로 stdin에 대한 닫힌 핸들을 다시 열 수 있습니까? –