[Haskell-cafe] Re: Is id strict?
Jón Fairbairn
jon.fairbairn at cl.cam.ac.uk
Sun Jul 30 08:22:45 EDT 2006
Duncan Coutts <duncan.coutts at worc.ox.ac.uk> writes:
> On Sun, 2006-07-30 at 10:56 +0100, Jón Fairbairn wrote:
> > "David House" <dmhouse at gmail.com> writes:
> > > 1) f is strict iff f _|_ = _|_.
> > > 2) f is strict iff it forces evaluation of its arguments.
> >
> > 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.
>
> Surely it just means evaluate to weak head normal form?
Means [what] evaluate[s] to whnf? id doesn't do any
evaluating, in fact functions in general don't do any
evaluating.
> Definition 2) relies on following a certain evaluation strategy: that
> operationally, functions always return results in weak head normal form.
> GHC follows this strategy. It's possibly to imagine returning thunks and
> then getting the caller to force the evaluation to WHNF.
Which is pretty much my point. Use a definition of "strict"
that doesn't depend on anything but denotations (or Böhm
trees).
--
Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk
More information about the Haskell-Cafe
mailing list