Xin chào, tất cả!Có cách nào an toàn để chuyển đổi Bộ sưu tập thành chuỗi trong F # không?
Vì vậy, tôi đã chơi xung quanh với các cách để đưa Bộ sưu tập .NET vào cấu trúc dữ liệu chức năng. Điều tốt nhất tôi có thể làm là đưa nó vào một seq đầu tiên và bất cứ điều gì tôi muốn sau đó.
Vấn đề là điều này dường như phá vỡ suy luận kiểu, rõ ràng là không an toàn.
Ví dụ:
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 *)
Để làm được bất cứ điều gì hữu ích với entries_list, tôi sẽ phải làm:
entries_list :?> SearchResult
Đang cố gắng để khái quát nó vào một seq < 'a> thất bại, kể từ trình biên dịch vẫn yêu cầu tôi gõ kiểu tĩnh của nó (điều này có ý nghĩa).
Có cách nào để tránh điều này không? Tôi bắt đầu nghĩ rằng đây là một hạn chế của việc sử dụng các cấu trúc dữ liệu .NET theo cách chức năng.
Xin lỗi nếu đây là câu hỏi mới; Tôi là màu xanh lá cây để F # và lập trình chức năng nói chung (và đang yêu nó!). Chúc mừng!
- Carlos.
Không thực hiện 'let entries_seq: seq <_> ...'công việc - điều này sẽ cung cấp cho một chuỗi đánh máy mạnh mẽ –
Nó không; Tôi nhận được lỗi giới hạn giá trị, phù hợp với những gì tôi đã thấy trước đây. –