On Mon, Jun 11, 2012 at 11:09 PM, John Cowan <cowan@x>
Emmanuel Medernach scripsit:
That's where make-promise (formerly known as eager) comes in: it allows
> I agree that making a promise with an immediate value could evaluate
> to that immediate instead of creating a promise.
you to return an object to your caller that is guaranteed to be a
promise. This allows promise-based APIs, where the caller knows he can
safely force the return value.
Ok, thanks for reminding 'eager'. One minor point though, in the current draft it is said to be a procedure, but if it is it should evaluates its argument, making rather pointless to create a promise. I am now not sure if this is correct ?
> But in general I think that a promise have to be opaque until forcedTicket #405 filed.
> and that it is worth to have a disjoint type for promises and to be
> able to check if an object is a promise or not.
> IMHO for any other usage auto-forcing in primitives strongly soundsIt does add a cost, but the cost is paid only by users of an
> as being in the "it seems a good idea at that time" department:
> auto-forcing means that primitives have to check if something is a
> promise and forcing it in that case, adding this check add a cost and
> it has deep impact on the language semantics.
implementation (such as Kawa) that does auto-forcing. The impact
is actually quite shallow: it simply makes some functions mildly