Bon après-midi à tous !
Je me suis amusé à trouver des moyens de convertir une collection .NET en une structure de données fonctionnelle. La meilleure solution que j'ai trouvée est de la convertir d'abord en seq et ensuite en ce que je veux.
Le problème est que cela semble rompre l'inférence de type, ce qui n'est évidemment pas sûr.
Exemple :
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 *)
Pour faire quoi que ce soit d'utile avec entries_list, je devrais faire :
entries_list :?> SearchResult
Essayer de le généraliser à un seq<'a> échoue, puisque le compilateur exige toujours que je tape statiquement son énumérateur (ce qui est logique).
Existe-t-il un moyen d'éviter cela ? Je commence à penser qu'il s'agit d'une limitation de l'utilisation des structures de données .NET d'une manière fonctionnelle.
Désolé si c'est une question de novice ; je suis novice en F# et en programmation fonctionnelle en général (et j'adore ça !). Merci !
- Carlos.