Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prolog 在两个列表中搜索两个元素_Prolog - Fatal编程技术网

Prolog 在两个列表中搜索两个元素

Prolog 在两个列表中搜索两个元素,prolog,Prolog,我有一个谓词搜索(a,b,c,d),如果a和b中的元素占据了对应的列表c和d,则该搜索保持不变 这是我的代码,但返回false: corresp( X , [X|_] , Y , [Y|_] ) . corresp( X , Y , [_|Xs] , [_|Ys]) :- corresp( X , Xs , Y , Ys ) . 当X和Y在列表中时,返回false corresp( X , [X|_] , Y , [Y|_] ) . corresp( X , Y

我有一个谓词搜索(a,b,c,d),如果a和b中的元素占据了对应的列表c和d,则该搜索保持不变

这是我的代码,但返回false:

corresp( X , [X|_] , Y      , [Y|_] ) .
corresp( X , Y     , [_|Xs] , [_|Ys]) :- corresp( X , Xs , Y , Ys ) . 
当X和Y在列表中时,返回false

corresp( X , [X|_] , Y      , [Y|_] ) .
corresp( X , Y     , [_|Xs] , [_|Ys]) :- corresp( X , Xs , Y , Ys ) . 
这是不一致的。试一试

corresp( X , Y , [X|_] , [Y|_] ).
corresp( X , Y , [_|A] , [_|B] ) :- corresp( X , Y , A , B ) .

空白和仔细的布局对代码(您自己的或其他人的)有很大帮助。认知科学表明,表格布局尤其有助于识别错误,因为与正常模式的偏差非常突出。

为什么不
corresp(X,[[u124; Xs],Y,[[u124; Ys]):-corresp(X,Xs,Y,Ys)。
?@capelical我把它改成了你是如何做的,这就是我得到的:corresp(1,2,[2,3,1],[3,2])。错,对不起,你是对的。这是第一条要修改的条款
corresp(X,Y,[X |,[Y |])。
您的第二个原始子句没有问题。@capelical很抱歉让人痛苦啊哈,我把它改成了那样,事情就这样发生了。。颜色(黄色,红色,[黄色,粉色,红色],[蓝色,红色])。错误。只有当黄色和红色是列表的标题时,它才起作用