Tôi đã sử dụng biểu thức sau để lấy chỉ mục của số nhỏ nhất trong một vectơ. Tuy nhiên, tôi muốn tránh việc sử dụng .indexOf
(vì lý do hiệu quả và có thể chính xác về số, mặc dù tôi đoán các con số được chuyển đổi hoàn toàn thành chuỗi).Làm cách nào tôi có thể tìm thấy chỉ mục của thành viên nhỏ nhất của vectơ này trong Clojure?
(.indexOf [1 2 3 4 0 5]
(reduce #(if (< %1 %2) %1 %2) [1 2 3 4 0 5]))
Bạn có thể làm điều đó khác đi bằng cách giảm bớt không?
Có thể hơi đơn giản hóa bằng cách sử dụng http://clojuredocs.org/clojure_contrib/clojure.contrib.seq-utils/indexed – opqdonut
Lưu ý rằng tôi không cho rằng nhận xét ở trên là đúng nữa - chức năng 'được lập chỉ mục' sẽ không xuất hiện để tồn tại trong Clojure 1.3. – candrews