如何在Prolog中编写函数cmp-lst / 3?

时间:2012-07-24 20:36:20

标签: list comparison prolog

  

可能重复:
  How to write a cmp_list/3 function in Prolog?

提供了两个功能代码: 第一个是:

atom_integer(Atom, Int) :- atom_chars(Atom, C), number_chars(Int, C).

第二个是:

integer_list([], []).
integer_list([Lst1|RLst1], [Lst2|RLst2]) :-
            atom_integer(Lst1, Lst2),
            integer_list(RLst1, RLst2).

现在,我需要编写cmp-list / 3函数来获取以下内容:

?- cmp_list([2,3,4], [2,3,5], C).
C = lt ;
C = le .

?- cmp_list([1,2,3,4], [1,1,8], C).
C = gt ;
C = ge .

意味着小于; le意味着更少或相等; gt表示大于;和ge意味着更大或相等。

第一个列表输入和第二个列表输入表示软件的版本号,C表示两个版本的比较。 此功能应该用于检查哪个版本更新。 对于两个空输入列表[],答案可以是le和ge。

提前致谢!

0 个答案:

没有答案