From: SourceForge.net <no...@so...> - 2004-07-14 16:17:51
|
Bugs item #770789, was opened at 2003-07-14 05:00 Message generated for change (Comment added) made by dwarren You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101176&aid=770789&group_id=1176 Category: Other Group: wrong answer >Status: Closed >Resolution: Invalid Priority: 5 Submitted By: Richard de Rozario (rderozario) Assigned to: Nobody/Anonymous (nobody) Summary: numbervars doesnt work as documented Initial Comment: The library predicate numbervars/1 (manual 2, page 8) says that any variable in the term supplied as argument will be instantiated to something like '$VAR'(n) where n is an integer indicating the position of the variable in the term. So, if I do "T=p(X,Y), numbervars(T), writeln(T)." I would expect something like "p('$VAR'(1),'$VAR'(2))". Instead, I get p(A,B), and the A and B are not characters, strings, or variables. XSB version: 2.5 ---------------------------------------------------------------------- >Comment By: David S. Warren (dwarren) Date: 2004-07-14 16:17 Message: Logged In: YES user_id=13069 That is because write, which is used to print out the answers, prints terms like '$VAR'(i) as uppercase letters. So those terms are indeed '$VAR'(i). To see that you can do: | ?- T=p(X,Y),numbervars(T),write_canonical(T). p('$VAR'(0),'$VAR'(1)) T = p(A,B) X = A Y = B; -David ---------------------------------------------------------------------- Comment By: David S. Warren (dwarren) Date: 2003-07-14 13:10 Message: Logged In: YES user_id=13069 numbervars is working as advertised; it is writeln that is not doing what you expect. write (as used in writeln) prints out terms of the form '$VAR'(i) for an integer i as a letter(s). You can use write_canonical to see the actual '$VAR' terms. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101176&aid=770789&group_id=1176 |