[Haskell-cafe] Very crazy

Andrew Coppin andrewcoppin at btinternet.com
Tue Sep 25 05:11:31 EDT 2007


While using Haskell, I often find myself writing convoluted 
constructions such as this:

show_system =
  unlines .
  zipWith
    (\l ms ->
      "Eq" ++
      show l ++
      ": " ++
      (concat $ intersperse " + " $ zipWith (\n x -> x ++ " x" ++ show 
n) [1..] (init ms)) ++
      " = " ++
      last ms
    )
    [1..] .
  map (map (take 8 . show))

And people complain that *Perl* is bad? This function is quite obviously 
absurd. I mean, it works, but can *you* figure out what it does without 
running it? The question is, can anybody think of a better way to write 
this function? (And more generally, functions like it.)



More information about the Haskell-Cafe mailing list