[PPL-devel] Arguments reversed

Roberto Bagnara bagnara at cs.unipr.it
Fri Apr 19 10:33:20 CEST 2002


Patricia Hill wrote:
> 	In the copy methods/predicates the arguments have been reversed
> 	to match the corresponding ones in the C interface.
> 	Now the 1st argument unifies with a handle for the new polyhedron
> 	and the 2nd argument is the handle for the source/original polyhedron.
> 	Predicates affected are:
> 	ppl_new_C_Polyhedron_from_C_Polyhedron,
> 	ppl_new_NNC_Polyhedron_from_NNC_Polyhedron,
> 	ppl_new_C_Polyhedron_from_NNC_Polyhedron,
> 	ppl_new_NNC_Polyhedron_from_C_Polyhedron.

Hmm, are you sure this is a good thing?
In C and C++ the ordering is as it is because of the similarity
with (destructive, one-way) assignment.  That is the reason why
functions such as strcpy have an interface like this:

     char *strcpy(char *dest, const char *src);

(do `man strcpy' to see this).
In Prolog there is no such a thing as the assignment and, consequently,
there is not this tradition.  See, for instance, the definition of
copy_term/2:

     copy_term(?Term,?CopyOfTerm) [ISO]

My vote is against this change.
BTW: if you try `make check' you will see that everything is broken at the moment.
Ciao

      Roberto

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it




More information about the PPL-devel mailing list