2011-08-19 24 views
7

Đối với các hoạt động giá rẻ như append trên danh sách (không phải chuỗi ký tự), tôi sẽ sử dụng Data.DList. Điều gì khiến tôi trở lại là gói trên Hackage được đánh dấu là “thử nghiệm” và bản cập nhật cuối cùng là vào năm 2009.Nhà nước của nghệ thuật hoạt động danh sách giá rẻ trong Haskell?

DList vẫn là cách để thực hiện điều đó trong Haskell?

+4

Các hoạt động bạn mong đợi O (1) phức tạp từ đâu? – augustss

+0

Nếu tất cả các bạn quan tâm đến là phụ thêm thì tôi đề nghị chức năng này: 'append x y = undefined', nó rất nhanh. :) Vì vậy, tôi giả sử bạn muốn làm một cái gì đó sau khi bạn đã xây dựng danh sách. Một khi bạn cho chúng tôi biết đó là những gì chúng tôi có thể cung cấp cho bạn lời khuyên. – augustss

+0

@augustss: :) Đó là về việc xây dựng và chuyển đổi danh sách văn bản có cấu trúc. Data.Text không trơn tru, nhưng danh sách nói 'Bold' hi có "'," Đoạn "Văn bản nhàm chán" "hoặc" Phần "Tiêu đề" "Nội dung ..."'. – LennyStackOverflow

Trả lời

13

Sử dụng Seq từ Data.Sequence. Nó cũng có O (1) khuyết điểm và snoc, nhưng nó là cơ sở, và được sử dụng và thử nghiệm nhiều hơn nữa.

6

Data.DList dường như đã được cập nhật lần cuối lúc Sat Jun 20 23:01:49 UTC 2009. Khá nhiều điều hữu ích trong hackage được đánh dấu là thử nghiệm, nhưng tôi sẽ không lo lắng về điều đó. DList có vẻ khá vững chắc. Nó sử dụng không có phần mở rộng ngôn ngữ dễ bay hơi và mã thực sự khá đơn giản.

Vì vậy, tôi đoán, câu trả lời sẽ là: có, DList vẫn tốt.

+0

2009: Lỗi của tôi, bằng cách nào đó Google đã gửi cho tôi phiên bản cũ hơn. Tôi tự hỏi liệu nó có bitroded hay không, trong quá trình nâng cấp GHC -> 7. *. – LennyStackOverflow

+0

@ Lenny222: Tôi nghi ngờ rằng nó có chút mơ hồ. Một danh sách khác biệt khá đơn giản và gói này dường như không sử dụng bất kỳ phần mở rộng GHC nào ngoại trừ CPP. Không có nhiều khả năng có thể sai. –

Các vấn đề liên quan