gpt4 book ai didi

prolog - 在 Prolog 中获取列表的第二个元素

转载 作者:行者123 更新时间:2023-12-05 08:21:06 27 4
gpt4 key购买 nike

在执行此任务时遇到一些问题。

目前我已经尝试过这个,我知道这是错误的,因为我不确定如何将 L 分成它的头和尾,但这是我想要的想法。

second(L,E) :- [H | E | T]

我认为 E 必须在 head 之后才能成为第二个元素。但是,我是这种语言的新手,想要一些见识。我如何按照谓词的编写方式从 L 获得这个头部和尾部。对此问题的一些见解将不胜感激。谢谢。

最佳答案

你可以把合一移到子句的开头,然后简单地写:

second([_, Second| _], Second).

列表的表示法是用逗号分隔初始元素,然后用竖线分隔列表尾部,即包含其余元素的列表。您可以在 Prolog 顶级解释器中尝试的一些示例应该会更清楚:

?- [1, 2, 3] = [Head| Tail].
Head = 1,
Tail = [2, 3].

?- [1, 2, 3] = [First, Second| Tail].
First = 1,
Second = 2,
Tail = [3].

?- [1, 2, 3] = [First, Second, Third| Tail].
First = 1,
Second = 2,
Third = 3,
Tail = [].

关于prolog - 在 Prolog 中获取列表的第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446896/

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