Sto provando a compilare un programma SWI-Prolog ma continuo a ricevere test is always true, var (sum) error on line 7
. Non riesco a capire cosa significhi. Qualcuno può aiutarmi per favore? Questo è un programma che spero risolverà alla fine i quadrati latini. Grazie.Il test Prolog è sempre true var (sum) error
:- use_module(library(clpfd)).
magic_counter(Count) :-
findall(a, magic_1(_Soln), As),
length(As, Count).
magic_1(Soln) :-
Row1 = [W1, W2, W3],
Row2 = [X1, X2, X3],
Row3 = [Y1, Y2, Y3],
Row1 ins 1..3,
Row2 ins 1..3,
Row3 ins 1..3,
Sum #= 6,
all_different(Row1),
all_different(Row2),
all_different(Row3),
all_different([W1,X1,Y1]),
all_different([W2,X2,Y2]),
all_different([W3,X3,Y3]),
W1 + W2 + W3 #= Sum,
X1 + X2 + X3 #= Sum,
Y1 + Y2 + Y3 #= Sum,
W1 + X1 + Y1 #= Sum,
W2 + X2 + Y2 #= Sum,
W3 + X3 + Y3 #= Sum,
append(Row1,Row2,Row12),
append(Row12,Row3,Soln),
labeling([], Soln).
ciao e grazie. Sono molto nuovo al prologo. se commento Sum # = 6 continuo a ricevere lo stesso errore. (forse non ho intenzione di commentarlo?) Mi piacerebbe risolvere i quadrati latini per l'ordine n quindi non sono sicuro di quali dovrebbero essere i miei vincoli. grazie ancora – CompilerSaysNo