
"David House"
Hi all.
I've seen two definitions of a 'strict function', which I'm trying to unite in my mind:
1) f is strict iff f _|_ = _|_. 2) f is strict iff it forces evaluation of its arguments.
There is a large sticking point that in my minds seems to fit (1) but not (2): id. Clearly, id undefined is undefined, but I also don't think id forces evaluation of its argument. There was a mini-discussion concerning this topic last night on #haskell, but if there was a consensus conclusion, it passed me by.
Thanks in advance.
In (2), you have to be evaluating f on an argument before f can force the argument. If you evaluate id x, you necessarily evaluate x. I don't think (2) is a very good definition, since I don't know what "forces" means here. -- Jón Fairbairn Jon.Fairbairn@cl.cam.ac.uk