Estoy tratando de producir un programa Haskell interactivo utilizando la función interact
con map
.Haskell IO con interact y mapa
Esto es lo que obtengo en ghci (por lo que puedo ver, así es como todos los tutoriales explican el uso de interact
, excepto el resultado).
*Module> interact $ unlines . map (++ "!") . lines
tteesstt
!
Tenga en cuenta que lo que realmente sucede es que todos los personajes de tipo I se repitió al instante y después de presionar Retorno aparece el signo de exclamación. Estaba, sin embargo, esta esperando:
*Module> interact $ unlines . map (++ "!") . lines
test
test!
Funciona perfectamente si uso la misma estructura del programa, pero en lugar de filter
map
.
http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/ghci-faq.html – rampion
Gracias, esto es perfectamente correcto. Es posible configurarlo en el buffer de línea ejecutando 'import IO' y luego' hSetBuffering stdout LineBuffering'. – notan3xit