こんにちは、みなさん!
そのため、.NETコレクションを機能的なデータ構造にキャストする方法を試してきました。私が得ることができた最高のものは、最初にそれをseqにキャストし、その後私が望むものにキャストすることです。
問題は、これが型推論を破るように見えることです。これは明らかに安全ではありません。
例:
let a = new System.DirectoryServices.DirectorySearcher("<query>") in
let entries = a.FindAll ()
let entries_list =
let (entries_seq : seq<obj>) = Seq.cast entries_list in
Seq.toList entries_Seq
in
entries_list (* list of AD objects found from query, has type obj *)
entries_listで役立つことを行うには、次のことを行う必要があります。
entries_list :?> SearchResult
それをseq<'a>に一般化しようとすると失敗します。これは、コンパイラーがその列挙子を静的に入力することを要求しているためです(これは理にかなっています)。
これを回避する方法はありますか?これは、機能的な方法で.NETデータ構造を使用する際の制限であると私は考え始めています。
これが初心者の質問である場合は申し訳ありません。私はF#と関数型プログラミング全般に関心があります(そしてそれが大好きです!)。乾杯!
- カルロス。