News for hackers. Stuff that matters.
Re:C++ has become a scripting language by dmytrish on Wednesday October 16, 2013 @10:53AM (#6559965)
It's a bit odd way of matching items of a list, I'd prefer to specify it without any possible trailing items:

    [infile, outfile] <- getArgs
Also, the last two lines may be squeezed into one (though less readable):

    writeFile outfile =<< (unlines . sort . lines) `fmap` readFile infile
Re:C++ has become a scripting language by crntaylor on Wednesday October 16, 2013 @12:56PM (#6560734)
On your first point; I was matching the behaviour of the C++ program in the blog post, which allows any number of command line arguments but only uses the first two.

On your second point, I actually thought about writing the whole thing as

  getArgs >>= \a -> readFile (a!!0) >>= writeFile (a!!1) . unlines . sort . lines
but decided that that's exactly the kind of thing that gets Haskell programmers a bad reputation.
Re:C++ has become a scripting language by nightski on Wednesday October 16, 2013 @06:58PM (#6562610)
Agreed, it does and you made the right choice. But in reality once you know Haskell - bind is a very common operation and reading this version is very natural.