Tôi muốn có một cấu trúc dữ liệu clojure rằng:Có một thứ như hàng đợi kết hợp không?
- pops từ phía trước
- push để phía sau
- cho phép tôi chỉ số assoc với các giá trị (ví dụ
(assoc q 0 1)
sẽ thiết lập giá trị của mặt trước để 1)
Có điều gì đó tương tự trong Clojure (không may PersistentQueue không đáp ứng Nr.3), hay tôi nên xây dựng nó trên đầu trang của vector?
Bạn cũng có thể triển khai đối tượng Queue thực sự trong Clojure, và sau đó nó sẽ làm việc với những thứ khác trong Java (và có thể một số vùng đất Clojure) mong đợi một hàng đợi. – Rayne
Nếu bạn luôn luôn thêm vào một đầu và lấy ra một đầu, sau đó bạn có thể giữ nó trong một bản đồ được lập chỉ mục bởi một số. Sau đó, bạn có thể chỉ đơn giản là theo dõi số lượng được giao cho đầu và đuôi và remap chúng khi bạn đi để cập nhật một giá trị với assoc. – Bill