Prolog二叉树-语法错误:应为运算符

Prolog二叉树-语法错误:应为运算符,prolog,binary-tree,syntax-error,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 -> %

我试图在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).
非常感谢您的帮助

Left(_,_, New, T)
不是有效的复合项,因为函子可能不是变量(大写标识符)。使用


相反,对于
Right

addChildren(node(left,Right,Cand,[(Name,price,Weight)| T]))的函数定义,也是如此:-
Left(_,_, New, T)
left(_, _, New, T)