
Sebastian Sylvan wrote:
Others have already replied with a solution, but it looks to me like what you're "missing" is how to sequence commands, which is the whole purpose of the "do" notation.
print_list [] = return () print_list (x:xs) = do putStr x print_list xs
The do notation is used here to sequence to IO actions (which answers your second question), first it prints out the first character in the string, then it calls itself recursively to print the rest of the list.
Thanks! And yes, I'm just learning how to sequence commands/actions, so I know I'm missing a lot.
The empty list shouldn't print an empty string, it should do nothing (that is, just return IO () because that's the return type of print_list)
Yeah... I just didn't know how to "do nothing" with Haskell. Thanks! Cheers, Daniel. -- /\/`) http://oooauthors.org /\/_/ http://opendocumentfellowship.org /\/_/ \/_/ I am not over-weight, I am under-tall. /