[Haskell-cafe] Newbied question on IO Monad
Stefan Holdermans
stefan at cs.uu.nl
Tue Sep 12 09:11:03 EDT 2006
Sara,
> I want to take the input string sss of "update" to use in: writeFile
> "myFile.txt" sss of function "main" and get the value zzz from "main"
> to assign for the value return of "update". I think I need to change
> the way to declare two functions to get what I want, but I do not know
> how.
>
> update :: String -> String
> update sss = zzz
>
> main = do writeFile "myFile.txt" sss
> x <- callSystem "myFile.txt"
> y <- openFile "result.txt" ReadMode
> zzz <- hGetContents y
> return zzz
I do not quite get what you want to accomplish. Is it something like
this?
update :: String -> IO String
update s = do
writeFile "myFile.txt" sss
callSystem "myFile.txt"
z <- readFile "result.txt"
return z
Note that update produces a value of type IO String now: in Haskell
98, there is no escape from the IO monad.
Chances are that the above is not what you want. Can you then please
explain one more time what it is what you're after?
Cheers,
Stefan
More information about the Haskell-Cafe
mailing list