Crap! You're right, should've tried it out. Sorry Christopher! The second approach does work though. -deech On Sun, May 15, 2011 at 6:58 AM, Michael Snoyman <michael@snoyman.com>wrote:
On Sun, May 15, 2011 at 2:56 PM, aditya siram <aditya.siram@gmail.com>wrote:
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"
Actually, <$> is just a synonym for fmap, so this will have the same problems as the fmap approach.
Michael
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
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners