gpt4 book ai didi

prolog - 您如何在 Prolog 中使用另一个子列表搜索和替换列表?

转载 作者:行者123 更新时间:2023-12-04 17:26:29 26 4
gpt4 key购买 nike

我正在尝试通过搜索和替换来修改列表,想知道如何使用搜索词作为列表搜索列表?

假设我有一个列表 [1,2,3,4] 我想挑出 2 和 3 并用 5,6 替换它
所以理想情况下我可以有一个谓词:

search_and_replace(Search_Term, Replace_Term, Target_List, Result_List).

eg.

search_and_replace([2,3], [5,6], [1,2,3,4], Result_List), write(Result_List).

最佳答案

让我假设您想用另一个列表替换列表中的子序列子字符串。

这是如何做到这一点的一般方法。你可能想插入
程序的进一步条件。

replacement(A, B,  Ag, Bg) :-
phrase((seq(S1),seq(A),seq(S2)), Ag),
phrase((seq(S1),seq(B),seq(S2)), Bg).

seq([]) --> [].
seq([E|Es]) --> [E], seq(Es).

而且,是的,这可以稍微优化 - 甚至它的终止属性
会获利。但是概念清晰是一个非常宝贵的值(value)......

编辑:您的示例查询:
?- replacement([2,3], [5,6], [1,2,3,4], Xs).
Xs = [1, 5, 6, 4] ;
false.

关于prolog - 您如何在 Prolog 中使用另一个子列表搜索和替换列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312507/

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