Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
List 序言列表合并问题?_List_Merge_Prolog_Meta Predicate - Fatal编程技术网

List 序言列表合并问题?

List 序言列表合并问题?,list,merge,prolog,meta-predicate,List,Merge,Prolog,Meta Predicate,如何合并这样的两个列表 [a,b,c] [1,2,3] 我想列一张清单 [a=1,b=2,c=3]. 我该怎么做?我使用swi-prolog Thanks for your answers. I have a question about it. I write start:- consult('tennis.pl'), see('tennis.pl'), repeat, read(A),

如何合并这样的两个列表

[a,b,c] 

[1,2,3]
我想列一张清单

[a=1,b=2,c=3]. 
我该怎么做?我使用swi-prolog

Thanks for your answers. I have a question about it. I write

start:- consult('tennis.pl'),
            see('tennis.pl'),
            repeat,
            read(A),
            A=..List,
            (A\=end_of_file->
            (A\=end_of_file,member('attributes',List)->
            delete(List,'attributes',NewList2);true),
            (A\=end_of_file,member('data',List)->
            delete(List,'data',NewList);true),
            merge(NewList2,NewList,Try),
            write(Try),nl;true),
            A=end_of_file,!,

            seen.


[outlook=_G40,temperature=_G49,humidity=_G58,wind=_G67,play_tennis=_G76]
[_G40=sunny,_G49=hot,_G58=high,_G67=weak,_G76=no]
[_G40=sunny,_G49=hot,_G58=high,_G67=strong,_G76=no]
[_G40=overcast,_G49=hot,_G58=high,_G67=weak,_G76=yes]
[_G40=rain,_G49=mild,_G58=high,_G67=weak,_G76=yes]
[_G40=rain,_G49=cool,_G58=normal,_G67=weak,_G76=yes]
[_G40=rain,_G49=cool,_G58=normal,_G67=strong,_G76=no]
[_G40=overcast,_G49=cool,_G58=normal,_G67=strong,_G76=yes]
[_G40=sunny,_G49=mild,_G58=high,_G67=weak,_G76=no]
[_G40=sunny,_G49=cool,_G58=normal,_G67=weak,_G76=yes]
[_G40=rain,_G49=mild,_G58=normal,_G67=weak,_G76=yes]
[_G40=sunny,_G49=mild,_G58=normal,_G67=strong,_G76=yes]
[_G40=overcast,_G49=mild,_G58=high,_G67=strong,_G76=yes]
[_G40=overcast,_G49=hot,_G58=normal,_G67=weak,_G76=yes]
[_G40=rain,_G49=mild,_G58=high,_G67=strong,_G76=no]

但我有这个结果。为什么?你对此有什么想法吗?

谓词可能如下所示:

   merge([], [], []).
   merge([X|Xs], [Y|Ys], [X=Y|Zs]) :- merge(Xs, Ys, Zs).
从空列表的基本情况开始,按相同长度的两个列表的情况导入。

与一起没有问题 :


谢谢你的回答,我想回答这个问题。但开始时有一个问题:-查阅'netsing.pl',参见'netsing.pl',repeat,readA,a=…List,a\=end\u of_file->a\=end\u of_file,member'attributes',List->deleteList,'attributes',YeniList2;true,A\=u文件的结尾,成员'data',List->deleteList,'data',YeniList;正确,合并Yenilist2,YeniList,Dene,writeDene,nl;为true,A=文件的结尾,!,看到了。你应该打开另一个问题,并把tentles.pl的内容也放在这个问题中。
?- use_module(library(lambda)).
true.

?- maplist(\K^V^(K=V)^true, [a,b,c], [1,2,3], KVs).
KVs = [a=1, b=2, c=3].