在终端中传递字符串进行编辑,并在Haskell程序中使用enter-key进行确认

chr*_*eyn 3 io terminal haskell

有没有办法在终端"打印"一个字符串,用户可以编辑这个字符串并按Enter确认并将其传回程序?

luq*_*qui 6

是的,使用haskeline(readline风格的库).它具有getInputLineWithInitial您要求的行为功能.例:

import System.Console.Haskeline

main = do
  result <- runInputT defaultSettings $ getInputLineWithInitial ""
     ("Pass string to edit in terminal ", "in Haskell program")
  print result
Run Code Online (Sandbox Code Playgroud)