pipes
पैकेज के आधिकारिक ट्यूटोरियल में प्रदान किए गए Effect
का आरेख यहां दिया गया है।सभी प्रवाहों के बजाय 'प्रभाव' केवल दो प्रवाह में कैसे आते हैं?
type Effect = Proxy X()() X
Upstream | Downstream
+---------+
| |
X <== <==()
| |
() ==> ==> X
| | |
+----|----+
v
r
Effect
जब से मैं यह सिर्फ Proxy X X X X
होने की उम्मीद कर रहा था, सभी प्रवाह सील, डेटा के किसी भी प्रवाह नहीं है। लेकिन इसके बजाय, यह दो प्रवाह में अनुमति देता है। क्या इसके लिए कोई विशेष कारण है? अगर मैं सिर्फ लिखने क्या एक Effect
सामान्य रूप से हस्ताक्षर Proxy X X X X
साथ, करता है, यह बिल्कुल ठीक संकलक पारित कर सकते हैं:
myMonad :: Proxy X X X X IO()
myMonad = do
a <- lift $ getLine
lift $ print a
return()
क्यों नहीं हम run
कुछ इस तरह?