Một thời gian trước, tôi chạy qua an article on FingerTrees (Xem thêm an accompanying Stack Overflow Question) và gửi ý tưởng đi. Cuối cùng tôi đã tìm thấy một lý do để sử dụng chúng.Tại sao FingerTrees không sử dụng đủ để thực hiện ổn định?
Vấn đề của tôi là Data.FingerTree package dường như có một chút thối quanh các cạnh. Hơn nữa, Data.Sequence trong gói Container sử dụng cấu trúc dữ liệu re-implements một phiên bản (có thể tốt hơn), nhưng không xuất nó.
Về mặt lý thuyết hữu ích vì cấu trúc này có vẻ như, nó dường như không nhận được rất nhiều sử dụng thực tế hoặc sự chú ý. Mọi người thấy rằng FingerTrees không hữu ích như một vấn đề thực tế, hay đây là một trường hợp không đủ chú ý?
giải thích thêm:
Tôi quan tâm đến việc xây dựng một văn bản tổ chức cấu trúc dữ liệu có tính chất nối tốt. Hãy suy nghĩ về việc xây dựng một tài liệu HTML từ các phân đoạn khác nhau. Hầu hết các giải pháp dựng sẵn đều sử dụng bytestrings, nhưng tôi thực sự muốn một cái gì đó liên quan đến văn bản Unicode đúng cách. Kế hoạch của tôi vào lúc này là lớp các đoạn Data.Text thành một FingerTree.
Tôi cũng muốn mượn mẹo từ Data.Vector lấy lát mà không cần sao chép bằng thao tác (bù đắp, độ dài). Data.Text.Text có được xây dựng trong kiểu dữ liệu, nhưng chỉ sử dụng nó cho uncons hiệu quả và unnoc opperations. Trong FingerTree, thông tin này có thể dễ dàng trở thành v
hoặc chú thích của cây.
Tại sao không sử dụng Data.Text.Lazy.Text? – dave4420
Hầu hết mọi người không cần phải giao tiếp với cấu trúc cây ngón tay; họ chỉ cần những gì họ nhận được từ 'Data.Sequence'. Rất ít người thực sự gặp phải một trường hợp mà họ cần phải sử dụng cấu trúc dữ liệu trực tiếp. –