Syntax Error: Operator expected in SWI Prolog

Syntax Error: Operator expected in SWI Prolog

每次尝试编译此缓冲区时,我总是收到语法错误。我已经完成了删除所有空格的常规步骤,但每次仍然出现相同的错误。

solve_puzzle(Swimmers):-
    Swimmers=[_Girl1,_Girl2,_Girl3],
    [girl(_,_,_,first),girl(_,_,_,second),girl(_,_,_,third)]=Swimmers,
    is_faster(girl(claudia,_,_,_),(_,_,cheltenham_girls,_),Swimmers),
    is_faster(girl(mary,_,_,_),girl(_,table_tennis,_,_),Swimmers),
    member(girl(_,weightlifting,_,first),Swimmers),
    member(girl(mary,_,sydney_girls_high_school,_),Swimmers),
    member(girl(claudia,ballroom_dancing,_,_),Swimmers),
    member(girl(_,_,hornsby_girls_high_school,_),Swimmers).

is_faster(F,S,[F|[S|_]]).
is_faster(F,S,[F,S,[_|Rest]]):- is_faster[F,S,Rest).

这是在做什么?每次我尝试序言时,我似乎都运行进入这个。

这个答案没有 没有的东西,但仍然:

我将您显示的代码保存到名为 foo.pl 的文件中,然后,当我尝试加载(查阅)该文件时,我得到:

?- [foo].
ERROR: foo.pl:12:41: Syntax error: Operator expected
true.

所以,foo.pl:12:41 是文件名:foo.pl,行号:12,列:41.

这是最后一行,在您用括号 ).

结束的方括号 [ 之前的那一列

通常,您会在问题中显示您在尝试编译程序时收到的确切错误消息(作为 Stack Overflow 的一般规则,不仅适用于 Prolog)。请参阅 "how to ask a good question", and what is a "minimal, complete, and verifiable example"

PS。据我所知,删除空格并不常见。这是调试技巧吗?