gpt4 book ai didi

list - 在 Prolog 中实现 select/3

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

我是 Prolog 的新手,遇到了这个谓词 select/3。我想出了它是如何工作的,尽管我不确定我自己将如何实现它。我认为是这样的:

selec(El,[El|T],T).
selec(El,[H|T],[H|S]) :-
selec(El,T,S).
select(El,[],[]).

我知道出了点问题。我的解决方案只删除第一次出现。我希望它在某个时候删除所有事件,就像 select/3 一样。有什么想法吗?

最佳答案

您的代码非常好,除了您不需要 select(El,[],[]). 谓词。

这就是你所需要的:

selec(El,[El|T],T).
selec(El,[H|T],[H|S]) :-
selec(El,T,S).

请记住,标准的序言参数顺序是输入后是输出,因此您真的应该这样写:

selec([El|T],El,T).
selec([H|T],El,[H|S]) :-
selec(T,El,S).

关于list - 在 Prolog 中实现 select/3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34688402/

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