> Right, but in
>
> let x = coin
> y = clone x
> in ...
>
> how do you ensure that x is not evaluated before invoking clone?
> For example, if ... is x+y, do you evaluate first x or y? The
> semantics should be independent of the evaluation order of the
> arguments of +. Indeed we are working on evaluating x and y in
> parallel, otherwise it is very easy to lose completeness in the
> presence of residuation.
Sorry for being so cryptic and terse in my previous mail. The ...
part in the let expression was (this time without infix notation):
seq y (x + y)
The seq function, which I once suggested to carry over from Haskell,
has the semantics
seq \bot _ = \bot
seq x y = y if x /= \bot
Thus, it must evaluate its first argument before the second.
I hope this makes things clear now.
Wolfgang
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Di Jun 15 2004 - 12:12:53 CEST