Prolog二叉树-语法错误:应为运算符
我试图在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 -> %
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)