gpt4 book ai didi

list - Prolog 子列表关系

转载 作者:行者123 更新时间:2023-12-01 05:13:20 25 4
gpt4 key购买 nike

我正在阅读 Ivan Bratko 的 Prolog 人工智能编程书,我之前没有使用 Prolog 的经验。在 book 中,一个列表的子列表关系被表述为:

S is a sublist of L if:
1) L can be decomposed into two lists, L1 and L2, and
2) L2 can be decomposed into two lists, S and some L3.

和关系给出为:
sublist(S, L) :-
conc(L1, L2, L),
conc(S, L3, L2).

conc([], L, L).
conc([X|L1], L2, [X|L3]) :-
conc(L1, L2, L3).

我觉得奇怪为什么我们不只是将列表分解成两个列表并检查其中一个列表是否与 S 匹配?

最佳答案

我觉得你写的时候很亲近:

It seems odd to me why we don't just decompose list into two lists and check whether one of the lists matches with S?



只需分解列表 L进入 列表,你就在那里:
  • L1是在子列表(“前缀”)之前的列表,
  • S是子列表本身,而
  • L3是跟在子列表(“后缀”)之后的列表。

  • conc/3只能连接(或分解)两个列表——而不是三个——两个的连接 conc/3目标是必需的。
    conc(L1,L2,L), conc(S,L3,L2)表示上述关系。

    关于list - Prolog 子列表关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54370142/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com