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

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -