col_tri(Vars):- Vars=[X1,X2,X3], Vars in 1..3, X1#\=X2, X1#\=X3, X2#\=X3, label(Vars).
This code is giving me this error in line 2 (Vars in 1..3,):
ERROR: c:/users/xxxx/desktop/prolog/tp2.pl:2:20: Syntax error: Operator expected
Operators are things like the
1 + 1, and in your code the
Vars in 1..3.
Prolog code can define new operators at runtime.
in operator is not a standard part of Prolog, it’s defined by the CLPFD library, which SWI Prolog has, but does not load automatically.
in is for a single variable on the left, there is also
ins for a list of variables like your
Vars. So the code should become:
:- use_module(library(clpfd)). col_tri(Vars):- Vars=[X1,X2,X3], Vars ins 1..3, X1#\=X2, X1#\=X3, X2#\=X3, label(Vars).