Buon pomeriggio, tutto!Esiste un modo sicuro per convertire una raccolta in una sequenza in F #?
Quindi ho giocato con i metodi per trasmettere una raccolta .NET a una struttura dati funzionale. Il meglio che ho potuto ottenere è di lanciarlo prima su un seq e su quello che voglio dopo.
Il problema è che questo sembra interrompere l'inferenza di tipo, che ovviamente non è sicura.
Esempio:
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 *)
Al fine di fare qualcosa di utile con entries_list, avrei dovuto fare:
entries_list :?> SearchResult
Cercando di generalizzare a un ss < 'a> fallisce, in quanto il compilatore richiede ancora che io digiti staticamente il suo enumeratore (che ha senso).
C'è un modo per evitare questo? Sto iniziando a pensare che questo è un limite dell'utilizzo di strutture dati .NET in modo funzionale.
Scusate se questa è una domanda principiante; Sono verde a F # e programmazione funzionale in generale (e lo sto amando!). Saluti!
- Carlos.
Vuol fare 'lasciare entries_seq: ss <_> ...'lavoro - questo dovrebbe dare una sequenza fortemente tipizzata –
no; Ottengo un errore di restrizione del valore, che è coerente con quello che stavo vedendo prima. –