
You seem to expect currentPath to be updated by putpiece? This won't
in Haskell. Once you've declared currentPath=[] it will always be [].
Values never change. If you want the functional equivalent of accumulator variables they have to be an argument of a recursive function. So try
happen this..
getPath :: Path -> IO Path getPath currentPath = do piece <- getLine if piece == "" then return currentPath else getPath (piece:currentPath)
initialCurrentPath::Path initialCurrentPath = []
main :: IO () main = do path <- getPath initialCurrentPath putStrLn (show path)
Regards -- Adrian Hey
Hi Adrian, How can I add a function that sorts this list that I read from the user and accumulate using the function that you described? I am not asking for a sort algorithm of course, I am just wondering how to feed the IO Path as an input to a sort function? Is it suppose to look like this: sort :: IO Path -> IO Path or sort :: IO Path -> Path How do you iterate over IO Path? Thanks for taking time.