2016-09-27 1 views
0

私はJAVAをうまく使っていますが、今はプロローグを学んでいます。 ABsの各要素は、形A-Bの項であり、ここで、Aは、対応する要素であり、Bは、Bsの対応する要素である。プロローグ2のリストは、対応する要素の操作を行います

zip(As,Bs,ABs)

いくつかの例:

zip([1,2,3,4],[a,b,c,d],L). 
    L=[1-a,2-b,3-c,4-d]. 

zip(X,Y,[1-a,2-b,3-c]). 
    X=[1,2,3],Y=[a,b,c] 
zip([1,2,3,4],[a,b,c],L). 
fail. 

誰かが私を助けることができます。

zip(As,Bs,ABs) :- 
    append(X,XS,As), 
    append(Y,YS,Bs), 

これは私は/ 3追記使用することは非常に効率的ではない..です

+1

'組み合わせ(A、B、AB).'そして' maplist .' – lurker

答えて

1

失っdone..imたものです:

私の実装が..あなたに感謝。

zip([],[],[]). 
zip([H|T],[H1|T1],[H-H1|T2]):-zip(T,T1,T2). 

いくつかの例を:あなたは、単にような何かを書くことができ(BS、AS、ABS、組み合わせ)

?- zip([1,2,3,4],[a,b,c,d],L). 
L = [1-a, 2-b, 3-c, 4-d]. 

?- zip(X,Y,[1-a,2-b,3-c]). 
X = [1, 2, 3], 
Y = [a, b, c]. 

?- zip([1,2,3,4],[a,b,c],L). 
false. 
+0

感謝あなたはそんなに。たくさん助けてくれる!私はいくつかのアイデアを得るかもしれない。 – newlearner

+0

私はちょうどそれをした、私はそれを作ったと思う。いつも、私はこの機能に精通していない。再度ありがとう、P – newlearner

関連する問題