Trong clojure, tôi muốn tổng hợp dữ liệu này:Trong Clojure, cách nhóm các phần tử?
(def data [[:morning :pear][:morning :mango][:evening :mango][:evening :pear]])
(group-by first data)
;{:morning [[:morning :pear][:morning :mango]],:evening [[:evening :mango][:evening :pear]]}
Vấn đề của tôi là :evening
và :morning
là không cần thiết. Thay vào đó, tôi muốn tạo ra bộ sưu tập sau:
([:morning (:pear :mango)] [:evening (:mango :pear)])
tôi đến với:
(for [[moment moment-fruit-vec] (group-by first data)] [moment (map second moment-fruit-vec)])
Có nhiều giải pháp ngữ?
Tên biến trong bạn giải pháp đề xuất là gây hiểu nhầm. Giá trị bị phá hủy là 'quả' thực sự là một chuỗi các vectơ cặp trái cây thời điểm. –
Cảm ơn rất nhiều! Cập nhật câu hỏi – viebel