從Windows正在添加,我最近安裝了一個名爲薄荷Linux發行版和Haskell平臺通過慶典(GHC 7.10),但必須有一些錯誤ghci的標準輸入在ghci的原因是:閱讀標準輸入被打破
interact $ take 0
拋出一個錯誤,但 interact $ take 1
沒有。
此外,如果我使用backspace
,arrows
或寫入標準輸入時的任何其它控制按鈕,它進入炭符號。例如退格進入^?
到ghci中而不是刪除的最後一個字符鍵入...
[email protected] ~ $ ghci GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help Prelude> interact $ take 0 Prelude> <stdin>: hGetChar: illegal operation (handle is closed) [email protected] ~ $ ghci GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help Prelude> readLn :: IO String euoe^?^?^[[1;5C^[[D^[[B -- here I tried to delete 'euoe'
你是如何運行該程序?你還期望發生什麼? GHCI似乎執行任何管道傳輸,所以我不確定你是否可以重新讀取標準輸入。 – pdexter
這看起來與你的問題有關:http://stackoverflow.com/questions/38776023/handle-is-semi-closed-error-in-haskell – villou24
'interact'和GHCi混合不好,IIRC。 'interact'需要所有stdin,而GHCi無法恢復。 – chi