अभी भी प्रोग्रामिंग सामूहिक खुफिया जानकारी के माध्यम से काम कर रहा है और कोड लिखने के लिए क्लोजर का उपयोग कर रहा है। मुझे यह काम मिल गया है, लेकिन कुछ हिस्सों में वास्तव में बदसूरत हैं, इसलिए मैंने सोचा कि मैं इसे साफ करने में मदद के लिए यहां के कुछ विशेषज्ञों से पूछूंगा।किसी अन्य मानचित्र की सामग्री के आधार पर मानचित्र से आइटम को निकालना
की मैं एक नक्शा है कि इस तरह दिखता है ("आरईसी" करने के लिए बाध्य है) लगता है:
{"Superman Returns" 3.902419556891574, "Lady in the Water" 2.8325499182641614,
"Snakes on a Plane" 3.7059737842895792, "The Night Listener" 3.3477895267131017,
"You, Me and Dupree" 2.651006036204627, "Just My Luck" 2.5309807037655645}
और मैं कुंजी है कि नक्शे (करने के लिए बाध्य में भी कर रहे हैं के साथ "उन वस्तुओं को हटाना चाहते हैं mymovies "):
{"Lady in the Water" 2.8325499182641614, "The Night Listener" 3.3477895267131017,
"Just My Luck" 2.5309807037655645}
:
{"Snakes on a Plane" 4.5, "You, Me and Dupree" 1.0, "Superman Returns" 4.0}
ताकि मैं नक्शा मिल
(apply merge (map #(hash-map (first %) (second %))
(remove #(contains? mymovies (first %))
recs)))
यही मेरे लिए बहुत बदसूरत लगता है:
कोड है कि मैं यह करने के लिए पाने में कामयाब रहे तरह दिखता है। ऐसा लगता है कि मुझे "निकालने" से वापस आने वाले मूल्य से नक्शा बनाने के लिए आवश्यक होना चाहिए। क्या ऐसा करने का कोई क्लीनर तरीका है?
अद्यतन: नीचे जोस्ट का जवाब एक और विचार चमकता है। अगर मैं सेट में दो नक्शे की चाबी बारी मैं चयन कुंजी इस तरह उपयोग कर सकते हैं:
(select-keys recs (difference (set (keys recs))
(set (keys mymovies))))
जूस्ट, मुझे चयन कुंजी को चालू करने के लिए धन्यवाद। मुझे पहले उस समारोह के बारे में पता नहीं था। अब इस नए ज्ञात ज्ञान के साथ कई अन्य वर्गों को फिर से लिखने के लिए!
अच्छा! यकीन नहीं है कि मैं उस समारोह को कैसे चूक गया। सीखने और याद रखने के लिए बहुत सारे कार्य ... –
क्या डेव ने कहा :) –