Return plain map from a Clojure record -
मेरे पास एक रिकॉर्ड है:
(defrecord point [xy]) (def p ( प्वाइंट 1 2))
अब मैं रिकार्ड से बस नक्शा निकालना चाहता हूं। इन तरीकों से नौकरी मिलती है क्या ये अच्छे तरीके हैं? क्या बेहतर तरीके हैं?
({} (concat p)) ({} (नक्शा पहचान पी) में) (हेश-मैप लागू करें (कॉन्टैक्ट पी लागू करें))
< / पूर्व>मैं उम्मीद कर रहा था कि एक क्लीनर तरीका हो सकता है, शायद किसी रिकॉर्ड की धारणा में अंतर्निहित हो।
रिकॉर्ड हैं मानचित्र
(defrecord Thing [ab]) (def t1 (बात 1 2)) (उदाहरण? Clojure.lang आईपरर्सस्टेंटमैप t1); = & gt; सच है
तो, सामान्य तौर पर उन्हें कोई भी APersistentMap
टाइप करने की आवश्यकता नहीं है लेकिन, अगर वांछित आप ऐसा करते हैं तो में
:
({} t1 में); = & gt; यदि आप एक स्वैच्छिक डेटा संरचना का पता लगाना चाहते हैं, जिसमें नेस्टेड रिकॉर्ड शामिल हैं, तो यह परिवर्तन करके, फिर चलाना
(def t2 (थिंग 3 4)) (def t3 (चींटी टी 1 टी 2)) (डेफ कॉल (सूची टी 1 [टी 2 {: एफयू टी 3}])) (क्लोज़ोर.वॉक / पोस्टवॉक # (यदि (रिकॉर्ड?%) ({}% में)%) coll); = & gt; ({: A 1,: b 2} [{: a 3,: b 4} {: foo {: a {: a 1,: b 2},: बी {: एक 3,: बी 4}}}] )
Comments
Post a Comment