Prolog赋值-使用is/2时出现未定义的算术表达式错误

Prolog赋值-使用is/2时出现未定义的算术表达式错误,prolog,Prolog,我这里有一个简单的Prolog程序,可以生成一个三个字母的单词 letter(a). letter(b). letter(c). word([A,B,C]). makeword(A,B,C):- word([A,B,C]), letter(L1), letter(L2), letter(L3), A is L1, B is L2, C is L3. 当makeword(A,B,C)时。在控制台或解释器中运行时,收到错误消息: 模块中的未定义算术表

我这里有一个简单的Prolog程序,可以生成一个三个字母的单词

letter(a).
letter(b).
letter(c).

word([A,B,C]).

makeword(A,B,C):-
   word([A,B,C]),
   letter(L1),
   letter(L2),
   letter(L3),
   A is L1,
   B is L2, 
   C is L3.
当makeword(A,B,C)时。在控制台或解释器中运行时,收到错误消息:

模块中的未定义算术表达式是eclipse中的

在追踪点:

呼叫是_body(A,A,eclipse)@A是L1

是什么给了我这个“is”的赋值错误


我希望输出A=A,B=A,C=A

使用
=
而不是
is
word([A,B,C])
的用途是什么?您应该阅读
is/2
的文档。它用于算术表达式求值。原子,例如
a
,不是算术表达式,因此无法“计算”。正如@williness所指出的,使用统一操作符
=/2