Michael Hanus wrote:
> > However, I'll keep the definition of (==) as a primitive
> > (like in the MCC) since its direct implementation is a bit
> > more efficient than compare and it is often used in programs.
Wolfgang Lux wrote:
> Michael Hanus wrote:
>> This is a good point. However, instead of a runtime error,
>> one could also simply fail which expresses the view that "compare"
>> could be applied to any expression but is only defined as a total
>> order in ground data terms.
> ... I would agree
> that this rather indicates a shortcoming of MCC's current support for
> debugging unexpected failures. It is a pity that the declarative
> debugger can help diagnosing wrong answers, but not missing answers.
Thus, why not agree to Sebastians suggestion and express all the
primitives, including (==) by compare?
> We could define (==), (<), (<=), (>) and (>=) in terms of compare.
It is just like Michael said earlier:
> From our experience, every new primitive, in particular
> recursion operators like =:=, == etc., requires considerably
> effort not only for the language implementation but also
> for various tools like debuggers, profiles, analyzers etc.
> Thus, I am in favor to avoid such primitives whenever possible.
I think this was quite convincing.
Cheers
Bernd
_______________________________________________
curry mailing list
curry_at_lists.RWTH-Aachen.DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry
Received on Di Mär 21 2006 - 18:17:09 CET