एक पाश को कम अंदर इस पर विचार करें:कुंजी मौजूद: अद्यतन, अन्यथा: Assoc
(if (contains? m k)
(update m k conj v)
(assoc m k [v]))
वहाँ एक रास्ता अगर बयान से छुटकारा पाने के है?
एक पाश को कम अंदर इस पर विचार करें:कुंजी मौजूद: अद्यतन, अन्यथा: Assoc
(if (contains? m k)
(update m k conj v)
(assoc m k [v]))
वहाँ एक रास्ता अगर बयान से छुटकारा पाने के है?
उपयोग fnil
v
की नहीं के बराबर मूल्य को संभालने के लिए जब k
मानचित्र में मौजूद नहीं है:
(update m k (fnil conj []) v)
जबकि fnil
जवाब अधिक शानदार है, मुझे लगता है आसान के बाद, पढ़ने के लिए विशेष रूप से के साथ अपरिचित अगर fnil
:
(assoc m k (conj (m k []) v))
जहां (m k [])
m
या चूक में k
का मान देता है []
पर k
m
में मौजूद नहीं है।
यदि k
एक प्रतीक है, (k m [])
भी काम करेगा।
मुझे इसे समझने में कुछ समय लगा, लेकिन हाँ! अब यह मिला, महान जवाब! –
शाजम, अच्छा जवाब! –