N ages a:比较Prolog中的2个名字及其年龄

你好我在 prolog 上有一个巨大的数据库,我正在尝试编写一个比较两个名字及其年龄的规则。例如我的数据库是:年龄(A,12)年龄(B,56)年龄(C,80)...

我想写一个规则,用户将输入名称 A 和名称 B(A,B),程序确定 a 是否大于 b。

0

我会用这个简单的方法:

age(bill,12).
age(bob,56).
age(betty,80).
older(NAME_A,NAME_B) :-
    age(NAME_A,AGE_A),
    age(NAME_B,AGE_B),
    AGE_A > AGE_B.
/*
?- older(bill,bob).
false.
?- older(bob,bill).
true.
*/
-1
age(bill,12) .
age(bob,56) .
age(betty,80) .
older(NAME_A,NAME_B,OLDER)
:-
age(NAME_A,AGE_A) ,
age(NAME_B,AGE_B) ,
older_compare(AGE_A,AGE_B,OLDER)
.
older_compare(AGE_A,AGE_B,true)
:-
AGE_A > AGE_B ,
!
.
older_compare(AGE_A,AGE_B,false)
.
/*
?- older(bill,bob,OLDER) .
OLDER = false .
?- older(bob,bill,OLDER) .
OLDER = true .
?- older(bill,bob,OLDER) .
OLDER = false .
?- older(betty,bob,OLDER) .
OLDER = true .
?- older(bob,betty,OLDER) .
OLDER = false .
?- older(betty,bill,OLDER) .
OLDER = true .
?- older(bill,betty,OLDER) .
OLDER = false .
*/

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(282)
护理程序的最后步骤是:忽略 Jenkins中构建后步骤的失败
下一篇

相关推荐

  • Wmi pr vse:Blender VSE导入的音频和视频不同步

    关于Wmi pr vse的问题,在add audio blender中经常遇到,我正在用搅拌机制作一个简短的视频,我导入的前几个条带都很好。然后我导入了另一个条带(并尝试重新录制并导入)。对于新的条带,视频比音频短得多。…

    2022-11-23 08:39:16
    0 39 24
  • jsonp和cors对比 Comparing Cross-Domain Solutions for Web Applicatio

    示例示例### jsonpJSONP(JSON with Padding)是一种在不支持跨域请求的浏览器上发送AJAX请求的技术。它通过动态标签来加载外部资源,从而解决跨域问题。…

    2023-08-31 10:31:13
    0 95 38

发表评论

登录 后才能评论

评论列表(57条)