gpt4 book ai didi

prolog 搜索列表

转载 作者:行者123 更新时间:2023-12-03 21:17:22 25 4
gpt4 key购买 nike

我正在尝试比较列表。给定函数(List1,List2) 和List1 的长度为N,List 2 的长度为M 且N>M。

我想检查 List2 的任何排列是否恰好是 List1 的前 M 个字符。

例如,

predicate([a,c,b,d,e],[a,b,c,d]).

应该是真的和
predicate([a,c,b,e,d],[a,b,c,d]).

应该是假的。

谢谢你。

最佳答案

通常在描述列表之间的关系时,DCG 在这种情况下很方便:

perm_prefix(Ls1, Ls2) :- phrase(perm(Ls2), Ls1, _).

perm([]) --> [].
perm(Ls0) --> [L], { select(L, Ls0, Ls1) }, perm(Ls1).

示例案例:
?- perm_prefix([a,c,b,d,e],[a,b,c,d]).
true

?- perm_prefix([a,c,b,e,d],[a,b,c,d]).
false.

关于prolog 搜索列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379270/

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