Prolog二进制树 - 语法错误:运算符预期

时间:2012-04-29 13:02:44

标签: prolog binary-tree syntax-error

我试图在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, [], []).

感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:2)

Left(_,_, New, T)

不是有效的复合词,因为仿函数可能不是变量(大写标识符)。使用

left(_, _, New, T)

代替Right