| GHC used to have an optimisation for static argument like this. It
would
| turn both of the above programs into a similar form using a local
| recursive function:
| 
| interp y xs = interpaux xs
|   where interpaux [] = []
|       interpaux (x:[]) = x:[]
|         interpaux (x:xs) = x:y:interpaux xs
| 
| GHC doesn't do this anymore. The reason for this is unknown to me.

It turned out to be a very minor effect (1-2% of execution time) and
hard to tune; with lots of parameters, it's best to make a local
function, with just a few it's best to pass the parameters round.

S
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to