के साथ एक बार एक दूसरे के साथ डेटा सेट की तुलनात्मक रूप से तुलना करना मानसिक झगड़ा के एक वर्ष से अधिक के बाद, मैं आखिरकार हास्केल को समझता हूं कि यह मेरी सामान्य प्रोग्रामिंग आवश्यकताओं के लिए मेरी प्राथमिक भाषा पर विचार करने के लिए पर्याप्त है। मैं बिल्कुल इसे प्यार करता हूँ।हस्केल
लेकिन मैं अभी भी एक कार्यात्मक तरीके से बहुत विशिष्ट संचालन करने के साथ संघर्ष करता हूं।
एक सरल उदाहरण:
Set = [("Bob", 10), ("Megan", 7), ("Frank", 2), ("Jane", 11)]
मैं एक दूसरे के लिए इन प्रविष्टियों की तुलना करना चाहते। सी या पायथन जैसी भाषा के साथ, मैं शायद कुछ जटिल पाश बनाउंगा, लेकिन मुझे यकीन नहीं है कि कौन सा दृष्टिकोण (नक्शा, गुना, सूची समझ?) एक कार्यात्मक भाषा के साथ सबसे अच्छा या सबसे कुशल होगा।
यहाँ कोड का एक नमूना मैं पर काम शुरू कर दिया गया है:
run xs = [ someAlgorithm (snd x) (snd y) | x <- xs, y <- xs, x /= y ]
विधेय खुद के साथ प्रविष्टियों की तुलना से सूची समझ रखती है, बल्कि समारोह बहुत कुशल है, क्योंकि यह प्रविष्टियों कि पहले से ही किया गया है तुलना नहीं है की तुलना में। उदाहरण के लिए। यह बॉब के साथ मेगन की तुलना करेगा, और फिर बॉब के साथ मेगन की तुलना करें।
इस मुद्दे को हल करने के तरीके पर कोई सलाह बहुत सराहना की जाएगी।
आप कहते हैं कि आप उनकी तुलना करना चाहते हैं, लेकिन तुलना के परिणाम के साथ आप क्या करना चाहते हैं। आपके नमूने से ऐसा लगता है कि आप सूची से दो अलग-अलग तत्वों की हर पसंद को देखना चाहते हैं। क्या यही है? –
हां, लेकिन "रिवर्स" पसंद नहीं है। मैं बॉब के साथ मेगन, फ्रैंक के साथ बॉब, जेन के साथ बॉब और फिर मेगन के साथ मेगन के साथ मेगन और जेन के साथ मेगन की तुलना करना चाहता हूं (मुझे लगता है कि सभी संयोजनों को शामिल किया गया है)। ऐसा कुछ ऐसा लगता है जो गुना के साथ किया जा सकता है, लेकिन मुझे यकीन नहीं है। –