Thỉnh thoảng tôi dành chút thời gian để chơi với Scala, có sự pha trộn các tính năng hấp dẫn tôi mặc dù không có khả năng sử dụng nó trong công việc của riêng tôi (cho đến nay). Đối với đá tôi quyết định thử một số ít nhất 99 Haskell Problems theo cách chung nhất có thể - vận hành và trả lại bất kỳ loại bộ sưu tập phù hợp nào. Một vài câu hỏi đầu tiên không quá khó, nhưng tôi thấy mình hoàn toàn bị ám ảnh bởi flatten
. Tôi chỉ không thể tìm ra cách gõ một thứ như thế.Cách an toàn, kiểu an toàn để làm phẳng các bộ sưu tập tùy ý lồng nhau trong Scala?
Để cụ thể về câu hỏi của tôi: bạn có thể viết một hàm an toàn loại làm phẳng tự động được lồng nhau SeqLike
s không? Vì vậy mà, nói,
flatten(List(Array(List(1, 2, 3), List(4, 5, 6)), Array(List(7, 8, 9), List(10, 11, 12))))
sẽ trở
List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12): List[Int]
? Lưu ý rằng đây không phải là câu hỏi tương tự như trong bộ vấn đề Haskell và Scala; Tôi đang cố gắng viết một hàm làm phẳng các danh sách không đồng nhất nhưng đúng hơn là các chuỗi đồng nhất nhưng được lồng nhau.
Tìm kiếm trên web Tôi tìm thấy một số translation into Scala của câu hỏi đó, nhưng nó hoạt động và trả về Danh sách [Mọi]. Tôi có chính xác rằng điều này sẽ yêu cầu một số loại đệ quy? Hay tôi làm điều này khó hơn nó?
hãy 'của bạn reverse' câu hỏi riêng biệt SO câu hỏi vì nó không có gì để làm với câu hỏi chính – dhg
Vui lòng xem tại đây: http: // stackoverflow.com/questions/7213134/how-does-this-đệ quy-danh sách-san phẳng-làm việc – Debilski
Điều đó gần như không, ngoại trừ tôi không thể hoàn toàn finagle nó thành WRT chung loại trình tự. –