Можете показать как сделать так чтобы при нажатии на любую клавишу в консоле выводилось какое-нибудь слово

Уже долго ищу в интернете и всё не как не могу понять как это можно реализовать на хаскеле, если сможете помочь буду благодарен.


Ответы (1 шт):

Автор решения: extrn

Когда речь заходит о посимвольном вводе, корректном выводе юникода, и прочих консольных премудростях, от языка программирования уже мало что зависит.

А зависит все от операционной системы, текущем режиме консоли, допустимом уровне костыльности и переносимости кода, наличии и возможности использования профильных библиотек.

Для вашей задачи самым простым и универсальным решением будет использование библиотеки haskeline (некоторого аналога GNU Readline), работающей как в Posix системах, так и в Windows (далеко не так же хорошо, но все же)

import Control.Monad (forever)
import System.Console.Haskeline

main :: IO ()
main = runInputT defaultSettings $ forever $ do
  waitForAnyKey "Press any key..."
  outputStrLn "Hello!"
→ Ссылка