2012-03-10 33 views
0

如何在約束編程語言ECLiPSe(http://www.eclipseclp.org/examples/)中進行變量求和?變量求和

我試圖得到這個功能:

:- lib(ic).   % include the standard interval constraint library 
:- lib(branch_and_bound). % include the branch and bound library for minimization 
:- lib(ic_edge_finder).  % include the cumulative constraint library needed for resource constraints 

    triangle(sums) :- 
     places = [a,b,c,d,e,f,g,h,i], 
     places :: 1..9, 
     sums = [sum1], 
     sums :: 10..30, 
     alldifferent(places), 
     sum1 #= a + b + c + d, 
     sum1 #= b + e + f + g, 
     sum1 #= d + g + h + i, 
     flatten([places,sums],allVars), 
     labeling(allVars). 

而我得到的錯誤是:

[eclipse 13]: compile('2a.ecl').   
undefined arithmetic expression in _1187 is sum1 in module eclipse 
syntax error : in source transformation in triangle(sums) :- places = [a, b, c, d, e, f, g, h, i], places :: 1 .. 9, sums = [sum1], sums :: 10 .. 30, alldifferent(places), sum1 #= a + b + c + d, flatten([places, sums], allVars), labeling(allVars) 

回答

1

在Eclipse中,就像在Prolog的,變量名必須先從大寫字母或下劃線:

Places = [A,B,C,D,E,F,G,H,I], 

+0

* Facepalm *謝謝 – NickHalden 2012-03-10 22:48:55