List 序言:获取两个元素的列表,当且仅当第一个元素与第二个元素相同时才返回true
我是一个新的prolog程序员,对于一个任务,我必须有一个基本的程序,当且仅当列表X是两个元素的列表,第一个元素与第二个元素相同时才能成功 从我对prolog的看法来看,程序似乎非常小,所以我输入了以下内容:List 序言:获取两个元素的列表,当且仅当第一个元素与第二个元素相同时才返回true,list,prolog,duplicates,List,Prolog,Duplicates,我是一个新的prolog程序员,对于一个任务,我必须有一个基本的程序,当且仅当列表X是两个元素的列表,第一个元素与第二个元素相同时才能成功 从我对prolog的看法来看,程序似乎非常小,所以我输入了以下内容: firstPair(x,x). 当我在swipl下运行它时,我得到以下输出: Syntax error: Operator expected 还有什么需要做的吗?我想如果我用第一对(1,2)来执行这个。这就是它所需要知道的全部,它是假的。首先,小写的x不是一个变量,它是一个原子。使x大
firstPair(x,x).
当我在swipl下运行它时,我得到以下输出:
Syntax error: Operator expected
还有什么需要做的吗?我想如果我用第一对(1,2)来执行这个。这就是它所需要知道的全部,它是假的。首先,小写的
x
不是一个变量,它是一个原子。使x
大写以解决问题:
firstPair(X,X).
第二,您不需要在解释器中输入这个。相反,您将其写入一个文件firstPair.pl
,然后将该文件读入Prolog
在命令提示下,键入以下内容:
['firstPair.pl'].
按回车键。现在您可以使用firstPair/2
规则
最后,由于作业涉及列表,我认为讲师希望您编写firstPair/1
,而不是firstPair/2
:
firstPair([X,X]).
首先,小写的
x
不是一个变量,而是一个原子。使x
大写以解决问题:
firstPair(X,X).
第二,您不需要在解释器中输入这个。相反,您将其写入一个文件firstPair.pl
,然后将该文件读入Prolog
在命令提示下,键入以下内容:
['firstPair.pl'].
按回车键。现在您可以使用firstPair/2
规则
最后,由于作业涉及列表,我认为讲师希望您编写firstPair/1
,而不是firstPair/2
:
firstPair([X,X]).
你的计划/事实
firstPair(X,X).
如果给定的两个参数可以统一,无论它们是列表、原子、变量等,都将成功。为了满足您的规范,a
当且仅当列表X是两个元素的列表时成功的程序,
第一个和第二个一样
你需要这样的东西:
list_of_two_elements( [X,X] ).
如果传递了一个术语,该术语是(或可以与)两个元素的列表,这两个元素是相同的,或可以通过统一而变得相同,那么这将成功。例如,以下所有操作都将成功:
成功后,变量列出两个元素(X)的列表。
将与包含相同未绑定变量的两个元素的列表统一,类似于X
[V1,V1]
列出两个元素([1,1])。
(如果成功,列出两个元素([1,X])。
这里将与整数X
统一)1
firstPair(X,X).
如果给定的两个参数可以统一,无论它们是列表、原子、变量等,都将成功。为了满足您的规范,a
当且仅当列表X是两个元素的列表时成功的程序,
第一个和第二个一样
你需要这样的东西:
list_of_two_elements( [X,X] ).
如果传递了一个术语,该术语是(或可以与)两个元素的列表,这两个元素是相同的,或可以通过统一而变得相同,那么这将成功。例如,以下所有操作都将成功:
成功后,变量列出两个元素(X)的列表。
将与包含相同未绑定变量的两个元素的列表统一,类似于X
[V1,V1]
列出两个元素([1,1])。
(如果成功,列出两个元素([1,X])。
这里将与整数X
统一)1