【问题标题】:Prolog: show a list contained within a listProlog:显示列表中包含的列表
【发布时间】:2022-02-25 20:05:16
【问题描述】:

我目前在 Prolog 程序中定义了以下事实:

hobbies([jarrod, [gaming, running, boxing]]).
hobbies([james, [programming, gaming, drawing]]).

什么查询可以显示 jarrod 的爱好列表? (即[游戏、跑步、拳击])

【问题讨论】:

  • ?- hobbies([jarrod, Hobbies]). 我还是更愿意改写成这样
  • .. 有事实hobbies(jarrod, [gaming, running, boxing]).
  • 对于初学者来说,上面有一个语法错误。爱好是采用一个数组参数还是两个参数?
  • 我的错,爱好应该有一个论据。爱好([姓名,[ListOfHobbies]])。
  • @jarrodparkes:但最好有两个参数!

标签: prolog


【解决方案1】:

@false 是正确的:

hobbies([jarrod, Hobbies]).

它将爱好与所有事实统一起来,然后只获取列表中第一个元素是 jarrod 的爱好。然后将爱好与爱好列表统一起来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 2012-01-04
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多