我正在尝试在prolog中创建一个tolower实现,但我一直收到错误,我不确定它的含义。
?- tolower("HE",L).
ERROR: tolower/2: Undefined procedure: (+)/2
这是我到目前为止的实施。
tolower([], _).
tolower([H|T], L):-
H + 32, tolower(T, L).
答案 0 :(得分:3)
让我们看看H + 32
的含义:
?- write_canonical(H+32). +(_,32)
所以你要调用一个名为+
的谓词,带有两个参数。
您尚未定义此类谓词,因此会出现错误。
要评估算术表达式,请使用例如(#=)/2
之类的约束作为整数:
R #= H + 32
这是一种关系,称R
等于 H + 32
,计算为整数表达式。
根据您的Prolog系统,您可能必须导入库才能使用(#=)/2
。