On Fri, Feb 8, 2013 at 2:03 PM, John Cowan <[email protected]> wrote:
> Alex Shinn scripsit: > > > > Arguably, the "first time" the promise is forced is at line 9 in the > > > example, and the "second time" is at line 6. However, at that time > > > line 6 gets executed, no value has been computed *yet*, so presumably > > > this example follows the spirit of the law. > > [snip] > > > The example in question has been in the report since R4RS, so we can't > > change this without breaking compatibility, and can't do that without > > good reason. > > Prose trumps examples, though, and the prose really is ambiguous. > When the prose is ambiguous, the examples are there to disambiguate. Moreover, the reference implementation makes this clearer. The semantics are that the first (temporally) _returned_ result is memoized, regardless of call order. We should probably improve the prose though. > It's not clear whether the value of a forced promise is determined at > the beginning of the force or at its end, which makes it unclear whether > the first time is really at line 6 after all. That's quite independent > of threading considerations. > Right, threading is unrelated and was only brought up as a motivation for why a certain semantics might be desirable. -- Alex
_______________________________________________ Scheme-reports mailing list [email protected] http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports
