Suppose I write something like this:

 foo :: [Int]
 foo = concat (replicate 4 [4,7,2,9])

The value of "foo" is completely determined at compile-time. So, will the compiler generate calls to concat and replicate, or will it just insert a large list constant here?

Obviously, once somebody has completely examined the contents of "foo", after that point it won't matter either way. I'm just curiose. Concatinating some strings is cheap; I sometimes write constructs like the above using much more expensive operations. (Expensive in time; the space taken up by the result isn't that great.)

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to