gpt4 book ai didi

prolog - 只查找列表中的数字

转载 作者:行者123 更新时间:2023-12-02 06:48:53 24 4
gpt4 key购买 nike

我需要编写一条规则,仅查找列表 M 中的数字并仅输出列表 O 中的数字。

查询如下:find(M, O)

我自己无法弄清楚,希望有人能帮助我。

最佳答案

这是一种“经典的 Prolog”方法:

find([], []).
find([H|T], [H|NewT]) :-
number(H),
find(T, NewT).
find([H|T], NewT) :-
\+ number(H),
find(T, NewT).

共有 3 个子句。

第一个表示对于空列表,结果是空列表。

第二条说:如果输入列表的第一个元素(head,H)是一个数字,则将其保留在输出中,输出的其余部分(new tail,NewT ) 是 find 应用于输入列表的其余部分(tail,T)。

第三个子句在结构上与第二个子句相似,但表示如果不是数字,则不要保持头部。

关于prolog - 只查找列表中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26618589/

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