我试图在prolog中写一个二叉树,但得到以下错误:
Syntax error: Operator expected
第一次调用addChildren时出现错误:
addChildren(node(Left, Right, Cand, [(Name, Profit, Weight)|T])):-
getTotalWeight(Cand, 0, Total),
%if total weight is less than 20
((Total + Weight) < 20 -> %then
New = [Cand | (Name, Profit, Weight)],
addChildren(Left(_,_, New, T)), %error here
addChildren(Right(_,_, Cand, T))
; %else
%end).
我正在使用以下节点:
node(node, node, [], []).
感谢任何和所有帮助。
答案 0 :(得分:2)
Left(_,_, New, T)
不是有效的复合词,因为仿函数可能不是变量(大写标识符)。使用
left(_, _, New, T)
代替Right
。