A. Pagaltzis wrote:
>
> If you do stick with this name, I'd suggest "suspended", as
> "suspension" sounds weird. (I'm not sure this is a particularly
> strong reason for anything, but hey.)

Thanks for your reply! I can live with Sub::Suspended. However,
'suspension' isn't uncommon (see the links below).

> However, I don't think that's the best name, as the term tends to
> be used in the context of (pseudo-) parallel execution,
> particularly in reference to threads.

Yes, it depends on context - unfortunately.

> Lazy evalution is the term that came to mind first as I read your
> description of what the module does.

Indeed, 'lazy evaluation' is a good name for the evalution *strategy*,
but I prefer to name the *thing* (type, class) that realizes this
strategy.
Thinking about this, while sticking with the module name, I could
change the description:

  Sub::Suspension - Realizes lazy evaluation strategy.

--

A Google search

  <http://www.google.de/search?q=%22lazy+evaluation%22+suspension+thunk>

finds the following results:

  In lazy evaluation, a suspension is a closure with a flag indicating
  whether the expression has been evaluated or not.

    <http://computing-dictionary.thefreedictionary.com/suspension>


  Lazy evaluation is a combination of delayed evaluation and memoization.
  Delayed evaluation is implemented using thunks.
  Suspensions are just thunks; force simply applies the suspension ... to
  force its evaluation.

    <http://www-2.cs.cmu.edu/~rwh/introsml/techniques/memoization.htm>


Steffen

Reply via email to