
There's no "the compiler". :) There are many compilers. I don't know of
any that evaluate those expressions at compile time, but it's certainly not
forbidden. Nor would it be exceedingly hard to implement.
But it's not too bad to do it at run time either, because it will (most
likely) only be evaluated once at run time.
-- Lennart
On Nov 17, 2007 4:01 PM, Andrew Coppin
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