したがって、intersect ([1;1;1;2;2], [1;1;2;4])
が[1;1;2]
を返すように2つのソートされたリストを交差させたいとします。私はこれまで遠くに来た:F#2つのリストを交差する
let rec intersect (xs, xs') =
match xs, xs' with
| ([], []) -> []
| (x::tail, []) -> []
| ([], x'::tail') -> []
| (x::tail, x'::tail') -> if x = x' then x::intersect(tail, tail')
else intersect(tail, xs')
しかし、私はここからどこに行くのかは分かりません。この関数は2つのリストを含むタプルを取ります。そして、各リストの頭が互いに等しいとき、私は新しいリストを構築し始めますが、私は決して分からないものを見逃していますヒントを得る。
編集:私は、私は簡単にこの問題を解決するためのライブラリ関数を使用することができます承知しているが、それは何の楽しい:)
入力リストはソートされていますか? – Lee
はい、そうです。私はその情報を追加します。 – Khaine775
私は解決策を持っていますが、私はそれを投稿しません...パターンマッチで扱うケースがさらに増えます。 'if'式を扱う別のケースがあります:' x
TheQuickBrownFox