Re: Curry Report Vers. 0.8.2

From: Michael Hanus <>
Date: Fri, 24 Mar 2006 15:45:34 +0100

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,


curry mailing list
Received on Fr Mär 24 2006 - 15:49:19 CET

This archive was generated by hypermail 2.3.0 : Di Sep 29 2020 - 07:15:03 CEST