Tôi đang sử dụng một vectơ bản đồ được định nghĩa là một tham chiếu.clojure - xóa một phần tử khỏi một vector ref
tôi muốn xóa một bản đồ khỏi vectơ và tôi biết rằng để xóa phần tử khỏi vectơ, tôi nên sử dụng subvec
.
vấn đề của tôi là tôi không thể tìm cách triển khai subvec
trên một vectơ tham chiếu. tôi đã cố gắng thực hiện việc đó bằng cách sử dụng: (dosync (commute v assoc 0 (vec (concat (subvec @v 0 1) (subvec @v 2 5)))))
, sao cho seq trả về từ hàm vec
sẽ nằm trên chỉ mục 0 của vectơ nhưng nó không hoạt động.
có ai có ý tưởng cách triển khai tính năng này không?
nhờ
Sử dụng một vector để lưu trữ thứ bạn muốn xóa theo kiểu truy cập ngẫu nhiên thường là lựa chọn sai - chúng không thể làm điều đó một cách hiệu quả và kết quả là các tính năng ngôn ngữ để làm việc này với chúng thật khó xử. Hãy xem xét chỉ sử dụng một danh sách/seq thay thế. – amalloy