使用 haskell 删除 stdin 中的项目



我的Haskell程序中有一些代码,如下所示:

evaluate :: String -> IO ()
evaluate = ...
repl = forever $ do
  putStr "> " >> hFlush stdout
  getLine >>= evaluate

问题是,当我按删除键(窗口上的退格键)时,我没有从缓冲区中删除字符,而是得到一个^?字符。从标准读取时,让删除以删除字符的规范方法是什么?同样,我希望能够使用箭头键来移动光标等。

编译程序,然后运行编译的可执行文件。 这将为 Delete 键提供正确的行为。 出于某种原因,解释该程序会搞砸删除的使用。

要编译程序,只需像这样调用ghc

$ ghc -O2 myProgram.hs

这将生成一个可从命令行运行的myProgram可执行文件:

$ ./myProgram

然后,这将为删除提供正确的行为。

最新更新