Khi cố gắng viết một API, tôi đang đấu tranh với các bộ sưu tập của Scala trong 2.8 (.0-beta1).Làm cách nào để triển khai bộ sưu tập trong Scala 2.8?
Về cơ bản những gì tôi cần là phải viết cái gì đó:
- thêm chức năng để bộ bất biến của một loại nhất định
- nơi mà tất cả các phương pháp như lọc và bản đồ trả về một bộ sưu tập cùng loại mà không cần phải ghi đè tất cả mọi thứ (đó là lý do tại sao tôi đã đi 2,8 lần đầu tiên)
- nơi tất cả các bộ sưu tập mà bạn đạt được thông qua các phương pháp đó được xây dựng với cùng thông số mà bộ sưu tập gốc có được (tương tự như cách SortedSet trao tay qua đơn hàng qua implicits)
- mà vẫn là một đặc điểm riêng của nó, độc lập với bất kỳ triển khai tập hợp nào.
Ngoài ra, tôi muốn xác định triển khai mặc định, ví dụ: dựa trên HashSet. Đối tượng đồng hành của đặc điểm có thể sử dụng cài đặt mặc định này. Tôi không chắc chắn nếu tôi cần toàn bộ sức mạnh của các nhà máy xây dựng để lập bản đồ loại bộ sưu tập của tôi cho các loại bộ sưu tập khác.
Tôi đọc số paper on the redesign of the collections API nhưng có vẻ như mọi thứ đã thay đổi một chút kể từ đó và tôi thiếu một số chi tiết trong đó. Tôi cũng đã đào sâu qua mã nguồn của bộ sưu tập nhưng tôi không chắc nó có phù hợp hay không. Lý tưởng nhất mà tôi muốn xem là một hướng dẫn thực hành cho tôi biết từng bước một, chỉ cần các bit mà tôi cần hoặc mô tả chi tiết về tất cả các chi tiết để tôi có thể tự đánh giá bản thân mình . Tôi thích chương về bình đẳng đối tượng trong "Lập trình trong Scala". :-)
Nhưng tôi đánh giá cao bất kỳ gợi ý nào về tài liệu hoặc ví dụ giúp tôi hiểu thiết kế bộ sưu tập mới tốt hơn.
http://lampwww.epfl.ch/~odersky/papers/fsttcs2009.pdf –
Cảm ơn, Lukas, tôi cũng sẽ đọc nó. –
Xem thêm http://daily-scala.blogspot.com/2010/04/creating-custom-traversable.html ("Tạo triển khai Traversable tùy chỉnh", từ Jesse Eichar và blog "Daily scala") – VonC