4 ms·
Which can then be made to look exactly like the getLine >>= putStrLn case by doing greet name = putStrLn ("Hello, " ++ name) main = getLine >>= greet
by rapala 12y ago
Which can then be made to look exactly like the
getLine >>= putStrLn
case by doing
greet name = putStrLn ("Hello, " ++ name)
main = getLine >>= greet
(Edited to include the definition of main)
- ggchappell 12y agoThis is a nice approach. Thanks to all of you in this thread. I think I'll try something like this when I introduce Haskell I/O in my Programming Languages class in a month or two.
- millstone 12y agoIf this is meant to be under main, you need a "let": main = do let greet name = putStrLn ("Hello, " ++ name) getLine >>= greet For whatever reason, I didn't learn about the magic let syntax in do-notation until relatively late. Anyways this is very elegant, but not something I could have generated early on, especially because it mixes two different sequencing syntaxes (do-notation and >>=).
- wz1000 12y agoThe 'do' is superfluous. It would be much better as main = let greet name = putStrLn ("Hello, " ++ name) in getLine >>= greet