如何写序言一cmp_list / 3的功能?(How to write a cmp_list/3 f

2019-07-30 14:01发布

写谓词cmp_list/3中,第一2个参数是2所列出,且最后一个是Comparison这意味着geltle ,或gt
ge :大于或等于
lt :小于
le :小于或等于
gt :大于
输出应该是这样的:
前两个列表代表一个版本软件的,并且该功能用于比较软件的两个版本,看看哪一个是新的:

?- 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 .

Answer 1:

这气味像功课,所以我只给你一对夫妇的提示。

  • 如果两个列表是空的,他们是平等的( lege )。
  • 如果第一个列表是空的,你有什么样[], [V|Vt], ...进行比较时,这可能是递归的终点,说1.2和1.2.3,所以第三个参数应lt
  • 类似地,如果第二列表是空的,第三个参数应当gt
  • 如果两者都非空,你应该比较头。 如果它们不同,回答gtlt相应。 如果他们是平等的,递归的尾巴。


文章来源: How to write a cmp_list/3 function in Prolog?