在查询中使用Prolog规则显示给定列表的第一个元素?

在查询中使用Prolog规则显示给定列表的第一个元素?,prolog,Prolog,这是关于范例试卷的问题的第二部分,我目前正在努力完成,这让我有点困惑,但我仍然是一个很好的开场白,所以解决方案可能是显而易见的 我编写了这个规则/事实包含1(X,[X |)]。用于检查给定元素是否等于给定列表的头。 这很好,正如预期的那样,从我所有的阅读来看,我大概95%确信这是最好的方法。但问题是,使用这个规则编写一个prolog查询来显示给定列表中的第一个元素 我正在使用swi prolog输入并测试我的所有规则等,我知道如何让它显示给定列表的第一个元素的唯一方法是使用查询[H|T]=(so

这是关于范例试卷的问题的第二部分,我目前正在努力完成,这让我有点困惑,但我仍然是一个很好的开场白,所以解决方案可能是显而易见的

我编写了这个规则/事实
包含1(X,[X |)]。
用于检查给定元素是否等于给定列表的头。 这很好,正如预期的那样,从我所有的阅读来看,我大概95%确信这是最好的方法。但问题是,使用这个规则编写一个prolog查询来显示给定列表中的第一个元素


我正在使用swi prolog输入并测试我的所有规则等,我知道如何让它显示给定列表的第一个元素的唯一方法是使用查询
[H|T]=(some_list)
。那么,我该如何将我的规则应用到这个。。?如果您能提供任何帮助或指出正确的方向,我们将不胜感激,干杯。

让prolog了解X的值使该子句有效:

contains(X, sample_list).
比如说,

contains(X, [1, 2, 3]).
将返回
X=1
,因为当
X=1
时,子句为true


请记住,当给出这样一个子句时,Prolog将尝试查找X的所有值,以使该子句变为真。

Ah当然!我以前甚至输入过这样的查询,早上这个时候一定是我的大脑,谢谢:)