On "Lập trình Clojure", có một ví dụ sử dụng get chức năng trên một vector:trong Clojure, là một vector một hashmap cụ thể?
(get [:a :b :c] 1)
-> :b
tôi gọi (doc get) và có vẻ như có được một hàm lấy hashmap như là đối số nhưng không vector, vì vậy tôi đi lang thang nếu vector là một loại hashmap. Tôi nhớ một hashmap có thể mất một số nguyên chỉ số, và trả lại giá trị phù hợp với chỉ số đó, vì vậy tôi đã này để xem nếu vector có thể làm điều tương tự:
([1 2 3 4] 1)
-> 2
Nó đã làm giá trị trả về 2, mà là ở chỉ số 1 trong [ 1 2 3 4].
Điều này có nghĩa là vectơ là băm không, cặp khóa-giá trị của nó là cặp giá trị chỉ mục?
nói toán học, một vectơ là một * bản đồ * - một hàm (một hàm toán học). Tôi không biết làm thế nào nó được thực hiện trong clojure cụ thể, nhưng tôi nghi ngờ nó được thực hiện bằng cách sử dụng một băm. clojure được nhập động, do đó, nó không quan tâm loại thực tế là gì. – Elazar