2014-12-03 40 views
0

我在格式化行上出現語法錯誤,我不知道爲什麼!格式上的Prolog語法錯誤

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 

其中加在一起 我想不通爲什麼我收到一個語法錯誤時,所有的行和列是相等的。

回答

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,...] 
+0

沒有解決我的問題。我已經做了其他文件相同的確切方式,不包括: - use_module(library(clpfd))。我沒有收到錯誤。 – onebadbaggins 2014-12-03 16:04:13

+0

@onebadbaggins:啊,好像你在使用GNU-Prolog。無論如何,請參閱上面的修改。 – false 2014-12-03 16:07:03

+0

BOOM!好的趕上哈哈失蹤等號是問題! – onebadbaggins 2014-12-03 16:08:19