2017-04-24 3 views
2

私が作業しているプロジェクトは終了しましたが、私のコードを元に戻したいと思います。この1つのインスタンスでは、可変変数を使用しましたが、私のコードには可変変数が含まれないようにしています。ブールを返すためにこのコードセクションを書き直すにはどうすればよいですか?F#変更可能な変数を必要としないようにコードを書き直す必要がある

let mutable duplicates = false 

for el in (combo|>Seq.head) do 
    let exists = Seq.exists (fun x -> x = el) (combo|>Seq.item 1) 
    duplicates <- exists 

助けていただければ幸いです。

答えて

4
let t = Seq.item 1 combo 
let duplicates = Seq.head combo |> Seq.exists (fun el -> Seq.contains el t) 

The usual caveatsこのようにしseqの取り扱いについて適用されます。

+0

答えを感謝し、完璧に動作します!私のプロジェクトでは、非効率性は重要ではありません。 – TJ8

1
let s1 = combo |> Seq.head 
let s2 = combo |> Seq.item 1 
let duplicates = System.Linq.Enumerable.Intersect(s1, s2) |> Seq.isEmpty |> not 
+0

応答がありがとう、これは動作しますが、私はそれが私にとって簡単だったので、Linqを使用する必要はありませんでした。 – TJ8

関連する問題