[Haskell-cafe] Newbied question on IO Monad
Andrea Rossato
mailing_list at istitutocolli.org
Tue Sep 12 09:18:22 EDT 2006
Il Tue, Sep 12, 2006 at 09:00:19AM -0400, Sara Kenedy ebbe a scrivere:
> Hello,
>
> Maybe what I talk is not clear.
>
> 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
>
> S.
this is what you are trying to do with this code:
1. open a file and write to it an undefined string called "sss"
2. binding x with the value of a function name callSystem that takes a
string (we do not know what it returns because it's undefined in this
piece of code, but it must be a string).
3. open a file, "result.txt", read its content and put it in the IO
Monad.
Instead you would like to insert into the file myFile.txt a string,
sss, that is the result of applying a function to the content of
"result.txt". Am I right?
If yes, here some code:
update :: String -> String
update sss = "This is the content of result.txt:\n" ++ sss
main = do y <- openFile "result.txt" ReadMode
zzz <- hGetContents y
writeFile "myFile.txt" $ update zzz
putStrLn "Done!"
return ()
Ciao
Andrea
More information about the Haskell-Cafe
mailing list