Prolog中关于<>的语法错误

时间:2016-11-17 18:35:13

标签: prolog

我有这个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).

0 个答案:

没有答案