Я пытаюсь создать интерактивную программу на Haskell, используя функцию interact
с map
.
Вот что я получаю в ghci (насколько я могу судить, этоспособ, которым все учебные пособия объясняют interact
использование - кроме результата).
*Module> interact $ unlines . map (++ "!") . lines
tteesstt
!
Обратите внимание, что на самом деле происходит то, что каждый вводимый мной символ мгновенно повторяется, и после нажатия клавиши Return появляется восклицательный знак.Я, однако, ожидал этого:
*Module> interact $ unlines . map (++ "!") . lines
test
test!
Это прекрасно работает, если я использую ту же структуру программы, но filter
вместо map
.