Jestem nowy w Haskell i mam problem z funkcją interact
. To jest mój przykładowy program:Funkcja interakcji Haskell
main :: IO()
main = interact inputLength
inputLength :: String -> String
inputLength input = show $ length input
To kompiluje ale podczas uruchamiania nie drukuje wyjście - tylko drukuje ciąg znaków, który jest przekazywany do niej i przechodzi do następnego wiersza. Kiedy przechodzą interact
inny String -> String
funkcję tak:
upperCase :: String -> String
upperCase input = map toUpper input
działa ok i drukuje argument na wielkie litery, jak oczekiwano - więc co jest nie tak z pierwszej funkcji?
myślę 'interact' nadal jest piękny sposób pisania programów wiersza polecenia, które mają współpracować z potokami. W przypadku 'IO' mam ochotę napisać niepołączalne programy przeznaczone wyłącznie dla użytkowników. – luqui