मैं मुसीबत निम्नलिखित समस्या का समाधान खोजने आ रही हैं:मर्ज दो जटिल डेटा संरचनाओं
चलें कहते हैं कि मैं एक नक्शा है:
(def defaults {
:name "John"
:surname "Doe"
:info {:date-of-birth "01-01-1980"
:registered [{:type "newsletter" :name "breaking news" }]}
})
और फिर मैं एक ऐसी ही संरचित नक्शा पारित लेकिन मैं चाहता हूँ वैक्टर एकत्रित होना और चाबी के बाकी के ऊपर लिख:
(def new {
:name "Peter"
:info {:date-of-birth "11-01-1986"
:registered [{:type "alert" :name "mobile-alert" }]}
})
और मैं इस परिणाम हैं:
{:name "Peter"
:surname "Doe"
:info {:date-of-birth "11-01-1986"
:registered [{:type "newsletter" :name "breaking news" }
{:type "alert" :name "mobile-alert" }]}}
अब मैं की तरह स्थिर वाक्य रचना का उपयोग करके आसानी से कर सकते हैं:
(reduce conj (get-in defaults [:info :registered]) (get-in new [:info :registered]))
(शायद एक बेहतर तरीका नहीं है ...) लेकिन मैं निम्नलिखित गुणों के साथ एक गतिशील समारोह की अधिक उम्मीद थी:
- सही नक्शा
- से संरचना मूल्यों के साथ किसी भी कुंजी जानने
- अद्यतन के बिना, दोनों नक्शे से सभी चाबियाँ रखें कि यदि एक कुंजी के वैल एक वेक्टर,है तो 013,210 सही नक्शा वेक्टर के साथ वेक्टर (उचित कुंजी निश्चित रूप से मौजूद रहने पर) पहले से मदद के लिए
धन्यवाद :)
+1 पूरी तरह से 'विलय-साथ' के बारे में भूल गया। –
पूरी तरह से काम करता है। मुझे संदेह था कि इसमें विलय के साथ कुछ करना था लेकिन मैं इसे समझ नहीं पाया ... चीयर्स! –