मैं snd
तत्व की समानता के आधार पर tuples की एक सूची को समूहित करने के लिए Data.List.groupBy का उपयोग करना चाहता हूं।
मैं ऐसा कर सकता है:क्या इस हास्केल समस्या के लिए मानक पुस्तकालय समाधान है?
groupBy (\l r -> snd l == snd r) listOfTuples
लेकिन यह मुझे तुलना समारोह में के रूप में बहुत ज्यादा बॉयलरप्लेट हमलों - विशेष रूप से, क्योंकि यह एक बहुत अधिक गन्दा मिल सकता है अगर मैं एक और अधिक जटिल तुलना कर रहे थे। मैं कुछ ऐसा करना चाहते हैं:
groupBy (comparing snd) listOfTuples
लेकिन की तुलना के प्रकार के हस्ताक्षर, comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering
है तो यह इस उदाहरण में संकलित नहीं है।
मैं भी कर सकता है:
groupBy (\l r -> (comparing snd l r) == EQ) listOfTuples
लेकिन यह कोई पहली कोशिश से बेहतर है। क्या इससे पहले कि मैं खुद को रोल करता हूं, इस समस्या के लिए मानक-लाइब्रेरी समाधान है?
'कौन से पैकेज' से आया है? –
@ मैट: डेटा। फ़ंक्शन (http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Function.html#v:on) सामान्य रूप से आप hoogle पर फ़ंक्शंस की खोज कर सकते हैं: http://www.haskell.org/hoogle/?hoogle=on – porges
@ पोर्गेस: धन्यवाद! –