मैं समझता हूँ कि (->) a
तरह * -> *
के एक उच्च आदेश प्रकार है, कि जब एक प्रकार तर्क b
के लिए लागू प्रकार a -> b
क्या मैं एक -> बी -> * के लिए उच्च आदेश प्रकार लिख सकता हूं?
मैं तरह * -> *
का एक प्रकार है कि जब c
के लिए आवेदन किया a -> b -> c
देना होगा लिख सकते हैं देता है?
यदि नहीं, तो क्यों नहीं? शायद कुछ भाषा एक्सटेंशन और forall
का उपयोग कर रहे हैं?
(<*>) :: Applicative t => t (c -> d) -> t c -> t d
(<*>) :: (a -> b -> c -> d) -> (a -> b -> c) -> a -> b -> d
यह बाइनरी (curried) कार्यों के लिए एक Combinator के रूप में उपयोगी होगा:
यह मैं functor और अनुप्रयोगी (और अन्य वर्गों) जहां functorial संरचना "a -> b ->
" है के उदाहरण के रूप में लिखने में दिया जाएगा ।
एनबी। शायद यह Functors and Applicatives for types of kind (* -> *) -> * से संबंधित है लेकिन मुझे यकीन नहीं है, क्योंकि यह मेरे सिर पर चला गया :-)
ऐसी भाषा के उदाहरण के लिए, एग्डा में टाइप-लेवल (और दयालु, आदि) फ़ंक्शन हैं। – zbw
धन्यवाद। अब यह सब बहुत स्पष्ट है। रचना का उपयोग करके मैं फंक्टर और आवेदक का उपयोग करके द्विआधारी कार्यों को गठबंधन करने में सक्षम था: 'प्राप्त करें ((,) <$> लिखें (+) <*> लिखें (-)) 7 2' = '(9,5)' – Tobia