我的Haskell程序中有一些代码,如下所示:
evaluate :: String -> IO ()
evaluate = ...
repl = forever $ do
putStr "> " >> hFlush stdout
getLine >>= evaluate
问题是,当我按删除键(窗口上的退格键)时,我没有从缓冲区中删除字符,而是得到一个^?
字符。从标准读取时,让删除以删除字符的规范方法是什么?同样,我希望能够使用箭头键来移动光标等。
编译程序,然后运行编译的可执行文件。 这将为 Delete 键提供正确的行为。 出于某种原因,解释该程序会搞砸删除的使用。
要编译程序,只需像这样调用ghc
:
$ ghc -O2 myProgram.hs
这将生成一个可从命令行运行的myProgram
可执行文件:
$ ./myProgram
然后,这将为删除提供正确的行为。