2つのペアのリストをマージする関数を作成しました。この場合、各要素には文字と数値が含まれています。一致する要素のリストをマージする
mergeTupleList [] blist = blist
mergeTupleList alist [] = []
mergeTupleList (a:ab:as) (b:bn:bs) =
if ab == b
then a:[] ++ bn:[] ++ mergeTupleList (a:ab:as) (bs)
else [] ++ mergeTupleList (as) (b:bn:bs)
listA = [('a',1),('b',1),('a',2),('b',1)]
listZ = [('b',1),('z',1),('b',1),('z',2)]
「他」の場合には(B:BN:BS)がいるようだそれは、その後によってフィルタリングされていますので、最初にロードされた全ペアのリストが、短いバージョン(BS)ではありません' 調子。 元の(b:bn:bs)リストをこの関数に送信する方法を探しています。
入出力:
*Main> mergeTupleList ListA ListZ
[('a',1),('z',1),('a',1),('z',2)]
期待出力:明確化のため
[('a',1),('z',1),('a',1),('z',2),('a',2),('z',1),('a',2),('z',2)]
:
はおそらくマージ適切単語ではありません。元の
ListZ
に存在するListA
のすべての(2番目の)要素に対して、それに続く要素を書き込みます。
もう一つの例:
ListA = [1,0,3,0]
ListZ = [0,8,0,9]
*Main> mergeTupleList listA listZ
[1,8,1,9]
予想される出力: [1,8,1,9,3,8,3,9]
機能を正確に説明してください。与えられた 'listA'と' listZ'で期待される出力は、2つのリストをマージすることで期待されるものではありません。 – Michail
おそらく合併は適切な言葉ではありません。元のListZに存在するListAのすべての(2番目の)要素に対して、それに続く要素を書き込みます。 – Xui
これはおそらく質問自体に編集する必要があります。 – Michail