On Sat, May 11, 2013 at 9:25 PM, Jan Burse <janburse(a)fastmail.fm> wrote:
Dear All,
I am using the following directive:
?- use_module(engine(hiord_rt)).
I am expecting that I will then have call/n available as defined in the ISO TC2.
But it seems that the arguments are not appended, but something else happens. I get:
?- call(f(p,q),r,s,t). 1 1 Call: user:f(r,p,q,s,t) ?
But I would expect:
?- call(f(p,q),r,s,t). 1 1 Call: user:f(p,q,r,s,t) ?
Bug or feature?
Hi Jan,
It is a feature. This order was originally introduced in Ciao design to favor 1st argument indexing on some predicates. However, it has been accepted that the rules are counter-intuitive and that it was a not so good idea.
We discussed many times before that we should change that in future releases. The only problem is that this is a delicate and global change on a very large code base.
If any Ciao user has an objection, please speak now or forever hold your peace.
Bests,