私は2リストを持っている:アーランプリント2リスト
List1 = [1,2,3].
List2 = ["asd", "sda", "dsa"].
は私はターンを以下にこのリストを印刷することができます方法:
1 ASD 2 SDA 3 DSA
ありがとうございました。
私は2リストを持っている:アーランプリント2リスト
List1 = [1,2,3].
List2 = ["asd", "sda", "dsa"].
は私はターンを以下にこのリストを印刷することができます方法:
1 ASD 2 SDA 3 DSA
ありがとうございました。
1> lists:zipwith(fun (X1, X2) -> io:format("~p ~p ", [X1,X2]) end, List1, List2).
1 "asd" 2 "sda" 3 "dsa" [ok,ok,ok]
2>
) – 0xAX
場合によっては、ホイールを改造する方がよい場合もあります。 erlangの場合 - 再帰、末尾呼び出し、リストの使い方を理解するだけです。
f([], []) ->
ok;
f([H1|R1], [H2|R2]) ->
io:format("~p ~p", [H1, H2]),
f(R1, R2).
@shk:どちらのリストにも同じ数の要素が含まれているので、最初の節の先頭は安全に 'f([]、_)'と書くことができます。ここで '_'は値を無視する "do not care"変数。 –
良い点、ありがとう – keymone
@ Yasir Arsanukaev:それは文脈と期待される機能の厳密さに依存します。より厳密なバージョンでは、時にはいくつかのエラーが発生することがありますf([H1 | R1]、[H2 | R2]) - > io:format( "〜p〜p"、[H1、H2])、 f(R1、R2); f(_、_) - > ok.' –
このような印刷の理由を述べても害はありません。 –
これには、楽しい引数交換方法があります: '[io:format("〜p "、[X])|| X < - merge(List1、List2)] 'ここで' merge([]、L) - > L;マージ([H | T1]、L2)→[H |マージ(L2、T1)]。(テストされていません)。 –