如何修复tolowercase实现prolog上的错误?

如何修复tolowercase实现prolog上的错误?,prolog,syntax-error,Prolog,Syntax Error,我试图在prolog中创建一个tolower实现,但我一直遇到一个错误,我不确定这意味着什么 ?- tolower("HE",L). ERROR: tolower/2: Undefined procedure: (+)/2 这是我到目前为止的实现 tolower([], _). tolower([H|T], L):- H + 32, tolower(T, L). 让我们看看H+32是什么意思: ?- write_canonical(H+32). +(_,32) ?-写入规范(

我试图在prolog中创建一个tolower实现,但我一直遇到一个错误,我不确定这意味着什么

?- tolower("HE",L).    
ERROR: tolower/2: Undefined procedure: (+)/2
这是我到目前为止的实现

tolower([], _).
tolower([H|T], L):-
    H + 32, tolower(T, L).

让我们看看
H+32
是什么意思:

?- write_canonical(H+32). +(_,32) ?-写入规范(H+32)。 +(_,32) 因此,您正在调用一个名为
+
的谓词,其中包含两个参数

您没有定义这样一个谓词,因此您会得到一个错误

要计算算术表达式,请使用例如
(#=)/2等约束来计算整数:

R#=H+32

这是一个关系,表示
R
等于
H+32
,作为整数表达式计算

根据Prolog系统的不同,您可能必须导入库才能使用
(#=)/2