【问题标题】:prolog predicate returns facts(?)prolog 谓词返回事实(?)
【发布时间】:2020-08-17 20:52:45
【问题描述】:

首先,如果我的问题的答案是herehere 我找不到它,所以请不要杀我。

我想编写一个 Prolog 谓词,它返回这种形式的列表:

(list[elem, elem2], list[elem3, elem4], list[elem5, elem6]).  

现在我可以想出几种方法来返回这种形式的列表:

([elem, elem2], [elem3, elem4],[elem5, elem6]).

但是如何让“列表”这个词也出现在那里?它到底是什么?事实?另一个谓词?

提前致谢!

【问题讨论】:

  • 欢迎来到 StackOverflow,我们不会杀死 OP。
  • 为什么需要“列表”一词来指定列表?

标签: list prolog


【解决方案1】:

您可以使用标准的=../3 内置谓词创建复合词。例如:

| ?- Term =.. [list, [1,2,3]].

Term = list([1,2,3])
yes

但请注意,您尝试使用的语法list[elem5, elem6] 无效。您是否试图模仿 array 表示?如果是这样,也许改用list(elem5, elem6)?例如:

| ?- Term =.. [list, elem5, elem6].

Term = list(elem5, elem6)
yes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多