Prolog 条款的非法开始

Prolog 条款的非法开始,prolog,Prolog,我已经用prolog编写了一个函数,所有的函数名看起来都很好: all_names([],[]):- !. all_names(node(A,_,_),A):- !. all_names(L,N):- maplist(all_names,L,N). 但是当运行下面的代码时,我收到了非法开始的术语错误。谢谢 all_names([],Ns),!,Ns=[]). 错误: ERROR: Syntax error: Illegal start of term ERROR: all_names([],

我已经用prolog编写了一个函数,所有的函数名看起来都很好:

all_names([],[]):- !.
all_names(node(A,_,_),A):- !.
all_names(L,N):- maplist(all_names,L,N).
但是当运行下面的代码时,我收到了非法开始的术语错误。谢谢

all_names([],Ns),!,Ns=[]).
错误:

ERROR: Syntax error: Illegal start of term
ERROR: all_names([],Ns),!,Ns=[]
ERROR: ** here **
ERROR: ) .

这似乎是一条合理的错误消息。最后一个结束括号没有匹配的打开括号


正在运行
所有_名称([],Ns),!,Ns=[]。
对我来说很好。

你的括号不平衡,Prolog甚至告诉你了。