"David House" <[EMAIL PROTECTED]> writes:

> 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                                 [EMAIL PROTECTED]


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

Reply via email to