我有这个Prolog代码,必须计算一个数字的后继,这个数字在列表中表示。问题是代码生成"语法错误:运算符预期"代码的-N<> 0部分的错误。我到处寻找相当于<>,但这就是我到处找到它的方式以及我是如何在课堂上学到的。我应该更改什么来修复错误?
%successor of a number represented on a list
%[1 9 3 5 9 9]-->[1 9 3 6 0 0]
%domains
% el=integer
% list=el*
%predicates
% add_fn(el,list,list)
% inverted(list,list)
% succesor(list,list)
% suc(list,list,integer)
%clauses
add_fn(E,[],[E]).
add_fn(E,[H|T],[H|L]):-add_fn(E,T,L).
inverted([],[]).
inverted([H|T],L):-inverted(T,L1),add_fn(H,L1,L).
succesor([],[]):-!.
succesor(L,R):-inverted(L,LM),suc(LM,S,1),inverted(S,R).
suc([],[],_):-!.
suc([H|T],[H|L],N):-N=0,!,suc(T,L,0).
suc([H|T],[M|L],N):-N<>0,!,S=H+N,M=S mod 10,N1=S div 10,suc(T,L,N1).