I wanted to write my program's output straight to a file. When I ran the code, it automatically generated a file with the outputs of this code instead of printing them to the screen.
A simple example:
func = do writeFile "file.txt" show(calc) calc = do return (1+1)
I don't even know if that's possible. I'm new to Haskell and I still don't know how to use files.
You must use the function WriteFile to overwrite or appendfile to add at the end, as described in section 7.1 of the Haskell Report .
Fixing your example (and making the types explicit):
func :: IO () func = writeFile "file.txt" (show calc) calc :: Integer calc = 1 + 1
writeFile "file.txt" show(calc) , you are calling
writeFile with 3 arguments:
"file.txt" , the
show function, and the result of
calc . The version above describes the correct behavior:
writeFile "file.txt" (show calc)
return in Haskell has a different meaning than most languages. It doesn't mean to return the value as a result of the function, but rather, " injecting a value into a monadic type ". To "return" a value as in a conventional language, simply write the value you want to return:
calc = 1 + 1