में खंड 20.10.1.1 हास्केल 2010 भाषा रिपोर्ट कहा गया है कि:क्या कोई अच्छा कारण है कि 'deleteBy` का सबसे सामान्य प्रकार क्यों नहीं है?
deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
वास्तव में, GHC library में कार्यान्वयन
deleteBy :: (b -> a -> Bool) -> b -> [a] -> [a]
की अनुमति होगी, लेकिन वास्तव में के साथ पूर्व एक के लिए प्रकार को प्रतिबंधित करता है एनोटेशन।
इसलिए, एक उदाहरण के लिए नहीं कह सकता,:
क्योंकिfoo = deleteBy fsteq 42 [(43, "foo"), (44, "bar"), (42, "baz")] where
fsteq a (b,_) = a == b
Int
(Int, String)
के रूप में ही नहीं है।
क्या इसके लिए कोई अच्छा कारण है?
कारण मैं पूछ रहा हूं कि, यदि इसके लिए कोई अच्छा कारण नहीं है, तो में Frege डेटा के बंदरगाह में अधिक सामान्य प्रकार के साथ शामिल होगा। सूची मैं वर्तमान में कर रहा हूं। लेकिन शायद मैं कुछ दिख रहा हूँ?
संपादित करें: जैसा कि @hammar ने बताया, यह अन्य xxx पर भी कार्य करता है।
यह उन अंतर्दृष्टिपूर्ण टिप्पणियों की तरह है जिन्हें मैं ढूंढ रहा था। मुझे कुछ सोचने के लिए देता है। – Ingo
यह एक बहुत ही अंतर्दृष्टिपूर्ण जवाब है! – danr
लेकिन टाइप-डिफॉल्टिंग नियमों द्वारा 42 को 'इंटीगर' तक हल नहीं किया जाना चाहिए? – haskelline