如何修复tolowercase实现prolog上的错误?
我试图在prolog中创建一个tolower实现,但我一直遇到一个错误,我不确定这意味着什么如何修复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) ?-写入规范(
?- 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