gpt4 book ai didi

list - 序言谓词 [sublist(Xs, Ys)]

转载 作者:行者123 更新时间:2023-12-01 00:37:18 25 4
gpt4 key购买 nike

我是序言的新学习者。这是我们工作室的问题,我不知道从哪里开始。
真的很感激这方面的任何帮助。

子列表(Xs,Ys)

当 Xs 是一个包含 Ys 的某些元素的列表时,这适用于它们在列表 Ys 中出现的相同顺序。只要 Ys 是正确的列表,这应该有效。例如:
sublist([a,c,e],[a,b,c,d,e])应该成功。
sublist([a,e,c],[a,b,c,d,e])应该失败。
sublist([a,X,d],[a,b,c,d,e])应该有两个解 X=b 和 X=c。
sublist(X,[a,b,c])应有八解X=[]; X=[c]; X=[b]; X=[b,c]; X=[a]; X=[a,c]; X=[a,b];X=[a,b,c] .

最佳答案

我的实现:

sublist([], []).
sublist([H| Rest1], [H| Rest2]) :-sublist(Rest1, Rest2).
sublist(H, [_ | Rest2]) :-sublist(H, Rest2).

例子:
?- sublist(X,[a,b,c]).
X = [a, b, c] ;
X = [a, b] ;
X = [a, c] ;
X = [a] ;
X = [b, c] ;
X = [b] ;
X = [c] ;
X = [].

?- sublist([a,c,e],[a,b,c,d,e]) .
true ;
false.

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

?- sublist([a,X,d],[a,b,c,d,e]).
X = b ;
X = c ;
false.

关于list - 序言谓词 [sublist(Xs, Ys)],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918961/

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