Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
2 つのリストの交差を取り、新しいリストを作成する関数を探しています。この関数があります。let intersect x y = Set.intersect (Set.ofList x) (Set.ofList y)それは私がやりたいことを行いますが、F# の組み込み関数は使用したくありません。
let intersect x y = Set.intersect (Set.ofList x) (Set.ofList y)
ライブラリのものを使用するのが最善ですが、それができない場合
入力リストがソートされていると仮定した場合 (List.sort独自のものを使用または作成):
List.sort
let rec intersect a b = match a with |h::t -> match b with |h2::t2 -> if h=h2 then h::(intersect t t2) else if h>h2 then intersect t b else intersect a t2 |[] -> [] |[] -> []