Haskell IO с взаимодействием и картой

Я пытаюсь создать интерактивную программу на Haskell, используя функцию interact с map .

Вот что я получил в ghci (насколько Я могу сказать, что именно так во всех руководствах объясняется использование взаимодействия - кроме результата).

*Module> interact $ unlines . map (++ "!") . lines
tteesstt
!

Обратите внимание, что на самом деле происходит то, что каждый набираемый мной символ мгновенно повторяется, и после того, как я нажимаю Return, восклицательный знак появляется. Однако я ожидал этого:

*Module> interact $ unlines . map (++ "!") . lines
test
test!

Он отлично работает, если я использую ту же структуру программы, но filter вместо map .

6
задан Josh Lee 31 May 2011 в 16:53
поделиться