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
