compile-time evaluation
David Feuer
David_Feuer@brown.edu
Wed, 6 Feb 2002 4:44:08 -0500
>Just saying
>'evaluate this CAF to WHNF' might only inline the outer
combinator.
I'm not sure quite what you mean. However, it seems to me
that this sort of thing would match the way other things
happen in Haskell fairly well (i.e., default lazy,
strictify as necessary). If you want something to be
evaluated more deeply, make a CAF to do so, and then tell
the compiler to evaluate that... I suspect even this very
limited control would be useful for some applications that
would otherwise have long and useless start-up times. On
a more adventurous note, I think it would be very
interesting to be able to ask the compiler to make certain
values persistent across program executions. This could
solve the same problem, but may also help deal with long
computations that may be interrupted, and should be
re-started at the same point. (actually, I think this
would not be all that great... however, if non-trivial
memo tables ever get added to GHC, it could be _very_
useful to store those across program runs for
simulations... that way, if the program is given input 12,
and told to calculate something with it and print it out,
if the program is interrupted, and re-started with the
same input, calculation could presumably start at the
point it left off...). Of course, I have no clue how
realistic any of this is.
David Feuer
This message has been brought to you by the letter alpha and the number pi.