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