繁体   English   中英

如何在Prolog中编写cmp_list / 3函数?

[英]How to write a cmp_list/3 function in Prolog?

编写一个谓词cmp_list/3 ,前两个参数是2个列表,最后一个是Comparison ,表示geltlegt
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 .

这闻起来像作业,所以我只给你一些提示。

  • 如果两个列表都为空,则它们相等( lege )。
  • 如果第一个列表为空,则您有类似[], [V|Vt], ... ,在比较时可能是递归的结尾,例如1.2和1.2.3,因此第三个参数应为lt
  • 同样,如果第二个列表为空,则第三个参数应为gt
  • 如果两者都是非空的,则应该比较正面。 如果它们不同,则相应地回答gtlt 如果它们相等,则在尾巴上递归。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM