
You can also try the applicative way: (<$>) :: (a -> b) -> f a -> f b import Control.Applicative -- Think of the <$> as a monadic version of $ main = putStrLn <$> readFile "contents.txt" Or if you want to chain the functions and not worry about the "contents.txt" argument: import Control.Monad main= (readFile >=> putStrLn) "contents.txt" -deech On Sun, May 15, 2011 at 1:27 AM, Christopher Howard < christopher.howard@frigidcode.com> wrote:
I understand that one can bind the unwrapped results of IO functions to variables, and pass them to functions, like so:
main = do filecontents <- readFile "data.txt" putStrLn filecontents
But does the syntax allow you to cut out the middle man, so to speak, and bind the results directly to the parameter? Like
-- Tried this and it didn't work. main = do putStrLn (<- readFile "data.txt")
-- frigidcode.com theologia.indicium.us
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners