Bernd Brassel wrote:
> > I think it would be interesting to see your definition of (=:=)
> > in terms of ($!!), since (=:=) does not always compute the normal
> > form of both arguments (e.g., if one argument has no value).
>
> I didn't. Just by USING ($!!) in one case as described.
Ok, so you mean that you need also (=:=) as a primitive.
In this case, Wolfgang is right stating that ($!!) can be
defined in terms of (=:=) so that only this is really required
as a primitive. Your previous remark that "(=:=) has
to use something like such a primitive anyway" does only refer
to an optimization of (=:=).
> Considering that binding of free variables is by far the most expensive
> operation in the Haskell implementation, it would be surprising if it
> was anything near your 30%. In Prolog free variables should be quite a
> bit cheaper, I would assume, or don't you think?
It might be only cheaper if you ignore the occur check.
However, since PAKCS is intended to be a correct implementation
of Curry, PAKCS performs an occur check before binding a free
variable so that it is also not a constant time operation.
Best regards,
Michael
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Fr Mär 24 2006 - 15:49:19 CET