3 ms·
That's a very contrived example you obviously didn't spend any time trying to understand. No-one in their right mind would write code like that, except to demon
by exDM69 12y ago
That's a very contrived example you obviously didn't spend any time trying to understand. No-one in their right mind would write code like that, except to demonstrate something.
And if you did write code like that, Haskell's hlint tool would make suggestions to turn it neat and readable using fmap.
- pestaa 12y agoWhy wouldn't I want to write that? Clearly you need a little practice before instantly recognizing a partially applied function where the next parameter will be appended to your other string, but that one-liner has actually a very nice computing flow.
- exDM69 12y agoThat's a bit hard to read, isn't it? (return . f) is a common idiom (or antipattern?) which is better solved by using fmap. hlint will tell you this. For example: fmap ("Hello, " ++) getLine >>= putStrLn This isn't necessarily better either, I'd write this using do-notation. I understood every bit of that code, I just think it's ugly and hard to read and there are better ways to get the same done.
- dllthomas 12y agoI don't like it because the flow of data keeps changing direction. I would prefer one of getLine >>= ( ("Hello, " ++) >>> putStrLn ) putStrLn . ("Hello, " ++) =<< getLine