格式上的Prolog语法错误

时间:2014-12-03 15:52:56

标签: syntax prolog format clpfd

我的格式行出现语法错误,我不明白为什么!

magic3(Variables):-
   Variables[A,B,C,D,E,F,G,H,I],
   fd_domain(Variables,1,9),
   fd_all_different(Variables),
   A+B+C #= A+D+G,
   A+B+C #= A+E+I,
   A+B+C #= C+F+I,
   A+B+C #= B+E+H,
   fd_labeling(Variables),
   format("A=~w, B=~w, C=~w~n, D=~w, E=~w, F=~d~w, G=~w, H=~w, I= ~w", Variables).

代码打印

A B C
D E F
G H I

其中所有行和列在加在一起时相等 我无法弄清楚为什么我会收到语法错误。

1 个答案:

答案 0 :(得分:2)

在几个系统中,您需要放在文件/模块的开头:

:- use_module(library(clpfd)).

作为一项微小的改进,您可以引入总和S

S #= A+B+C,
S #= D+E+F, % this too!
S #= G+H+I,
....

更好的是,你现在可以用(1 + 2 + ... + 9)/ 3 = 15计算总和。所以加 S #= 15。实际的标签流程有nice animation on the Internet


此外:

Variables[A,B,...]

应该阅读

Variables = [A,B,...]