【问题标题】:Creating a specific list in Prolog在 Prolog 中创建特定列表
【发布时间】:2019-11-29 00:00:24
【问题描述】:

我想写一个函数来写一个列表,例如下面的代码

喜欢('约翰','足球')

喜欢('玛丽','足球')

喜欢('eric', '足球')

所以我想写的函数是这样的

whoLikes('soccer', list)

列表将是 ('john', 'eric')

我应该使用递归来做到这一点吗?怎么样?

【问题讨论】:

    标签: recursion prolog logic


    【解决方案1】:

    使用可以使用内置谓词setof/3

    likes(messi,soccer).
    likes(ronaldo,soccer).
    likes(jordan,basketball).
    
    whoLikesSoccer(F):- setof(X,likes(X,soccer),F).
    

    输出

    ?- whoLikesSoccer(X).
       X=[messi,ronaldo].
       false
    

    【讨论】:

      猜你喜欢
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2020-12-22
      相关资源
      最近更新 更多