如何在约束编程语言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)
答案 0 :(得分:1)
在ECLiPSe中,与Prolog一样,变量名称必须以大写字母或下划线开头:
Places = [A,B,C,D,E,F,G,H,I],
等