Prolog syntax error: illegal start of term

Prolog syntax error: illegal start of term

所以我正在尝试测试我的谓词 reduce/4 定义如下:

:- op(20,xfy,?=).

reduce(R,X ?=Y,P,Q) :-
    R=rename,
    regle(X ?=Y,R),
    length(P,N),
    trouve(Y,P,N,M),
    remove(N,M,P,Q).

但我一直收到此错误:

?- reduce(rename,X ?= Y,[?=(X,Y),?=(f(a),g(Z)),?=(X,a)],Q].

ERROR: Syntax error: Illegal start of term
ERROR: reduce(rename,X ?= Y,[?=(X,Y),?=(f(a),g(Z)),?=(X,a)],
ERROR: ** here **
ERROR: Q] . 

我是 Prolog 的新手,所以它可能有些愚蠢。

您使用 ] 而不是 ) 来关闭 reduce

的括号
reduce(rename,X ?= Y,[?=(X,Y),?=(f(a),g(Z)),?=(X,a)],Q].
%     ^open                                           ^close

您可以通过以下方式解决此问题:

?- reduce(rename,X ?= Y,[?=(X,Y),?=(f(a),g(Z)),?=(X,a)],Q).

我无法验证这是否解决了您的问题,因为您没有为 regle/2 等提供定义。但是我遇到语义错误这一事实似乎解决了语法错误。