6

2 つのリストの交差を取り、新しいリストを作成する関数を探しています。この関数があります。let intersect x y = Set.intersect (Set.ofList x) (Set.ofList y)それは私がやりたいことを行いますが、F# の組み込み関数は使用したくありません。

4

2 に答える 2

5

ライブラリのものを使用するのが最善ですが、それができない場合

入力リストがソートされていると仮定した場合 (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
             |[] -> []
    |[] -> []
于 2012-11-26T09:02:21.087 に答える