
I have the following code: f1 :: String -> String f2 :: IO String -> IO () f2 a = do b <- a putStr $ f1 b How can I write the function f2 in a point-free style? I have tried this: f2 = return.f1 >>= putStr ...but it doesn't work. Thanks!

Ovidiu D
I have the following code:
f1 :: String -> String
f2 :: IO String -> IO () f2 a = do b <- a putStr $ f1 b
How can I write the function f2 in a point-free style?
maybe f2 = (=<<) (putStrLn . f1) I still prefer the non point-free but clearer f2 = a >>= (putStrLn . f1)

That's good enough. Thanks!
On Sun, Mar 31, 2013 at 11:08 AM, Franco
Ovidiu D
writes: I have the following code:
f1 :: String -> String
f2 :: IO String -> IO () f2 a = do b <- a putStr $ f1 b
How can I write the function f2 in a point-free style?
maybe
f2 = (=<<) (putStrLn . f1)
I still prefer the non point-free but clearer
f2 = a >>= (putStrLn . f1)
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners

You can drop the parens if you like.
f2 a = putStrLn . f1 =<< a -- my preference
f2 a = a >>= putStrLn . f1
On 31/03/2013 7:29 PM, "Ovidiu D"
That's good enough. Thanks!
On Sun, Mar 31, 2013 at 11:08 AM, Franco
wrote: Ovidiu D
writes: I have the following code:
f1 :: String -> String
f2 :: IO String -> IO () f2 a = do b <- a putStr $ f1 b
How can I write the function f2 in a point-free style?
maybe
f2 = (=<<) (putStrLn . f1)
I still prefer the non point-free but clearer
f2 = a >>= (putStrLn . f1)
_______________________________________________ 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
participants (3)
-
Franco
-
Ovidiu D
-
Tony Morris