が壊れている、私は最近(7.10 GHC)はbash経由ペパーミントという名前のLinuxディストリビューションとHaskellのプラットフォームをインストールしましたが、GHCiの中のGHCi STDINと間違って何かがなければならない理由は次のとおりです。読むSTDINがWindowsから来
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'はすべての標準を自分自身のために望んでおり、GHCiはそれを元に戻すことはできません。 – chi