में मेरे पास दो निकट से संबंधित प्रश्न:हास्केल के तीर-क्लास AGDA में और -> AGDA
सबसे पहले, कैसे हास्केल के तीर वर्ग तैयार किया जा सकता/AGDA में प्रतिनिधित्व?
class Arrow a where
arr :: (b -> c) -> a b c
(>>>) :: a b c -> a c d -> a b d
first :: a b c -> a (b,d) (c,d)
second :: a b c -> a (d,b) (d,c)
(***) :: a b c -> a b' c' -> a (b,b') (c,c')
(&&&) :: a b c -> a b c' -> a b (c,c')
(निम्नलिखित Blog Post कहा गया है कि यह संभव हो जाना चाहिए ...)
दूसरा, हास्केल में, (->)
एक प्रथम श्रेणी के नागरिक और सिर्फ एक और उच्च क्रम के प्रकार और परिभाषित करने के लिए अपने सीधा है (->)
Arrow
कक्षा का एक उदाहरण के रूप में। लेकिन एग्डा में कैसा है? मैं गलत हो सकता था, लेकिन मुझे लगता है कि, एग्डास ->
हास्सेल के ->
की तुलना में, आगाडा का एक अधिक अभिन्न अंग है। तो, क्या एग्डास ->
को उच्च-ऑर्डर प्रकार के रूप में देखा जा सकता है, यानी Set
उपज वाले एक प्रकार का फ़ंक्शन जिसे Arrow
का उदाहरण बनाया जा सकता है?
दिलचस्प सवाल। (हास्केल में, तीर कुछ वाक्य रचनात्मक चीनी के साथ आते हैं जो उन्हें और भी सहायक बनाते हैं।) – AndrewC
@ एंड्रयूसी: आपका मतलब पैटरसन की प्रो-नोटेशन है? यह जानना दिलचस्प होगा, अगर यह आगाडा में भी स्पष्ट होगा, तो ... – phynfo
यही मेरा मतलब है, हां। – AndrewC