में सेट के पावर सेट को कैसे उत्पन्न करें मेरे पास कुछ प्रकार के आइटम हैं और इसके पावर सेट जेनरेट करना चाहते हैं।स्कैला
मैंने वेब की खोज की और मुझे कोई विशिष्ट स्कैला कोड नहीं मिला जो इस विशिष्ट कार्य को संबोधित करता है।
यही वह है जो मैं आया था। यह आपको लंबाई पैरामीटर द्वारा उत्पादित सेट की कार्डिनालिटी को प्रतिबंधित करने की अनुमति देता है।
def power[T](set: Set[T], length: Int) = {
var res = Set[Set[T]]()
res ++= set.map(Set(_))
for (i <- 1 until length)
res = res.map(x => set.map(x + _)).flatten
res
}
इसमें खाली सेट शामिल नहीं होगा। इसे पूरा करने के लिए आपको विधि की अंतिम पंक्ति को बस सेट करना होगा + सेट()
कोई सुझाव यह एक और कार्यात्मक शैली में कैसे पूरा किया जा सकता है?
मुझे लगता है कि प्यार का उत्पादन करेगा - मेरे सवाल होगा, और क्या है 'filterM' के लिए इस्तेमाल किया? –
@oxbow_lakes उदाहरण के लिए आप तीन-तरफा अनुमान फ़िल्टर कर सकते हैं। ('x => अगर ...' 'कोई नहीं '/' कुछ (झूठा) '/' कुछ (सत्य) ')। एक एकल 'कोई नहीं' पूरे इनपुट को साफ़ करेगा। लेकिन मुझे लगता है कि विदेशी मोनैड्स के साथ और अधिक उन्नत उपयोग नहीं होंगे जिनके बारे में मैंने कभी नहीं सुना है। – Debilski
यह इस तरह से बनाया गया है: 'सूची (1, 2, 3)। पावरसेट'। :) – Debilski