मैं स्कैला के लिए नया ब्रांड हूं, जिसमें हास्केल के माध्यम से कार्यात्मक प्रोग्रामिंग के साथ बहुत सीमित अनुभव था।सभी जोड़े की एक सूची तैयार करना
मैं एक इनपुट सूची से बने सभी संभावित जोड़े की एक सूची लिखने का प्रयास करना चाहता हूं। उदाहरण:
val nums = List[Int](1, 2, 3, 4, 5) // Create an input list
val pairs = composePairs(nums) // Function I'd like to create
// pairs == List[Int, Int]((1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1) ... etc)
मैं पूरी सूची के साथ प्रत्येक तत्व पर zip
उपयोग करने की कोशिश, उम्मीद है कि यह पूरी भर में एक आइटम नकल होगा। यह काम नहीं किया (केवल पहली संभव जोड़ी से मेल खाता है)। मुझे यकीन नहीं है कि तत्व को दोहराना कैसे है (हास्केल cycle
और take
के साथ करता है), और मुझे स्कैला पर प्रलेखन के बाद परेशानी हुई है।
इससे मुझे यह सोचने लगता है कि संभवतः परिणाम प्राप्त करने के लिए शायद एक संक्षिप्त, कार्यात्मक तरीका है। क्या किसी के पास अच्छा समाधान है?
यह आपरेशन, जो आप चाहते के लिए शब्दावली जानने के लिए बहुत उपयोगी है। इस मामले में, आप सूची के उत्पाद को अपने साथ ढूंढने की कोशिश कर रहे हैं। इसे देखें: http://stackoverflow.com/questions/8217764/cartesian-product-of-two-lists – Marcin
@ मार्सिन धन्यवाद। मुझे किसी भी प्रकार की कार्यात्मक प्रोग्रामिंग सीखने की दिशा में सबसे बड़ी चुनौतीपूर्ण ब्लॉकों में से एक मिला है जो नई शब्दावली उठा रहा है। – KChaloux
क्रॉस उत्पाद? कार्टेशियन उत्पाद के समान ही? यदि स्पार्क यहां प्रासंगिक है, तो [यह उत्तर] (http://stackoverflow.com/a/26565173/1175496) भी प्रासंगिक है –