एक संरचना QuickCheck के promote
समारोह, जैसे कि, प्रपत्र के एक समारोह जैसी साथ एक functor के लिए सामान्य शब्द क्या है। (->) r
और Id
के अलावा, इस तरह के एक ऑपरेशन के साथ कोई भी मज़ेदार भी हैं? (मुझे यकीन है कि वहां होना चाहिए)। गुगलिंग 'क्विक चेक प्रोमोशन' ने केवल क्विक चेक दस्तावेज को बदल दिया है, जो किसी भी सामान्य संदर्भ AFAICS में promote
नहीं देता है; 'क्विकचेक प्रोमोशन' के लिए एसओ खोजना कोई परिणाम नहीं देता है।
उत्तर
अब तक मैं promote
आकारिता के साथ एक f
के निर्माण की इन तरीकों से पाया:
f = Identity
- अगर च और छ दोनों
promote
तो जोड़ी functorh t = (f t, g t)
भी करता - अगर च और छ दोनों में
promote
है तो संरचनाh t = f (g t)
भी - है यदि एफ
promote
संपत्ति है और जी एक है y contrafunctor तो functorh t = g t -> f t
promote
संपत्ति
पिछले संपत्ति profunctors छ सामान्यीकृत किया जा सकता है, लेकिन फिर f महज एक profunctor हो जाएगा, तो यह शायद बहुत उपयोगी नहीं है, जब तक आप केवल profunctors आवश्यकता होती है।
f t = (t,t)
f t = (t, b -> t)
f t = (t -> a) -> t
f t = ((t,t) -> b) -> (t,t,t)
f t = ((t, t, c -> t, (t -> b) -> t) -> a) -> t
भी ध्यान रखें कि promote
संपत्ति का तात्पर्य है कि f
बताया है:
अब, इन चार निर्माण का उपयोग कर, हम functors f
जिसके लिए promote
मौजूद है के कई उदाहरण मिल सकते हैं।
point :: t -> f t
point x = fmap (const x) (promote id)
अनिवार्य रूप से एक ही प्रश्न: Is this property of a functor stronger than a monad?
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
(=<<) :: Monad m => (a -> m b) -> m a -> m b
यह देखते हुए कि इकाई अनुप्रयोगी तुलना में अधिक शक्तिशाली एक इंटरफेस है, यह हमें बताते हैं कि a -> f b
f (a -> b)
की तुलना में अधिक कर सकते हैं। यह हमें बताता है कि प्रकार (a -> f b) -> f (a -> b)
का एक कार्य इंजेक्शन नहीं हो सकता है। डोमेन एक सौहार्दपूर्ण तरीके से कोडोमेन से बड़ा है। इसका मतलब है कि आप संभवतः फ़ंक्शन के व्यवहार को संरक्षित नहीं कर सकते हैं। यह सामान्य जेनेक्टरों में काम नहीं करता है।
आप निश्चित रूप से उन मकानों को चित्रित कर सकते हैं जिनमें वह ऑपरेशन इंजेक्शन है। Identity
और (->) a
निश्चित रूप से उदाहरण हैं। मैं शर्त लगाने के लिए तैयार हूं कि और उदाहरण हैं, लेकिन कुछ भी तुरंत मुझ पर कूद नहीं आता है।
Data.Distributive अपने चर नाम बदल रहा
class Functor g => Distributive g where
distribute :: Functor f => f (g a) -> g (f a)
-- other non-critical methods
है, तो आपको
promote :: (c -> g a) -> g (c -> a)
स्पष्टता के लिए थोड़ा अवैध वाक्य रचना का उपयोग मिलता है,
012,promote :: ((c ->) (g a)) -> g ((c ->) a)
(c ->)
एक Functor
है, इसलिए promote
के प्रकार distribute
के प्रकार की एक विशेष मामला है। इस प्रकार प्रत्येक Distributive
फ़ैक्टर आपके promote
का समर्थन करता है। मुझे नहीं पता कि कोई समर्थन promote
है लेकिन Distributive
नहीं है।
'वितरक' 'प्रचार 'से सख्ती से मजबूत है। प्रत्येक 'वितरक' मज़ेदार 'जी' प्रतिनिधित्व योग्य है: यानी, निरंतर प्रकार 'बी' मौजूद है जैसे 'जी टी = बी -> टी'। हालांकि, 'जी टी = (टी -> ए) -> टी' जैसे' प्रचार 'के रूप में मज़ेदार हैं लेकिन प्रतिनिधित्व नहीं कर रहे हैं और इस प्रकार' वितरक 'होने में असफल होते हैं। अधिक आम तौर पर, 'जी टी = सी टी -> एच टी' के रूप में परिभाषित एक मज़ेदार 'जी' को 'प्रचार' किया जाता है यदि 'सी' कोई contrafunctor है और' एच' 'बढ़ावा दिया है। यह निर्माण केवल 'वितरित करने योग्य' को परिभाषित कर सकता है यदि 'c' स्थिर (अनुबंध) फ़ैक्टर है। – winitzki
- 1. Control.Lens:</p> <pre><code>type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t data LensR s t a b = LensR { viewR :: s -> a, setR :: b -> s -> t } </code></pre> मैं कोशिश कर रहा हूँ <p>: toListOf करने और
- 2. ऑटोमैपर: क्या नक्शा <A,B><B,A> देता है?
- 3. Django:</p> <pre><code>a = A() b = B() a.my_b = b b.save() a.save() </code></pre> <p>हैरानी की बात है <code>a</code><code>my_b</code> विदेशी कुंजी क्षेत्र में <code>null</code> साथ सहेजा गया है: पहले लक्ष्य मॉडल
- 4. स्काला:</p> <pre class="lang-py prettyprint-override"><code>def f((a, b)): return a + b d = (1, 2) f(d) </code></pre> <p>यहाँ टपल में पारित कर दिया, जबकि इसकी <code>f</code> को पारित किया जा रहा विघटित किया जा रहा है: समारोह तर्क
- 5. यह अजीब सशर्त ऑपरेटर वाक्यविन्यास क्या है?</p> <pre><code>bool bRes = (a < b) ? a=b, true : false; </code></pre> <p>तो <code>a < b</code>, तो <code>a=b</code> निष्पादित किया जाता है और <code>bRes</code> सत्य है:
- 6. <a> टैग
- 7. क्या अभिव्यक्ति में अनुक्रम बिंदु हैं^= b^= a^= b, या यह अनिर्धारित है? </p> <pre><code>int a = 10; int b = 42; a ^= b ^= a ^= b; /*Here*/ printf("a=%d, b=%d\n", a, b); </code></pre> <p>लेकिन मैं सोच रहा हूँ, <code>^=</code> तरह यौगिक काम ऑपरेटरों हैं:
- 8. मैं एफ # 3.0 के साथ .NET 4.5 बीटा उपयोग कर रहा हूँ, और मैं एक LINQ <code>Expression<Func<'a, 'b>></code> के प्रकार <code>Expr<'a -> 'b></code> का एक एफ # उद्धरण कन्वर्ट करने के लिए कोशिश कर रहा हूँ समारोह <'a, obj>>
- 9. Erlang howto इस द्विआधारी <<"a,b,c">>
- 10. Pivot या ज़िप एक seq <seq<'a>> F #
- 11. -b <tagname>
- 12. मैं कौन सी स्थिति std :: मानचित्र <A,B> क्रमबद्ध std :: vector <std :: pair <A,B>> से क्रमबद्ध हो सकता है?
- 13. मैं दो एल्गोरिदम <code>A()</code> और <code>B()</code> ऐसे जबकि एल्गोरिथ्म <code>B()</code><code>O(n^2)</code> लेता है कि एल्गोरिथ्म <code>A()</code> बिल्कुल <code>O(3n^2)</code> जाता है जब हम समय
- 14. सी ++ में (शून्य) का क्या अर्थ है?</p> <pre><code>void f(A* a, B& b, C* c) { (void)a; (void)b; (void)c; } </code></pre> <p>वास्तव में क्या हर पंक्ति की शुरुआत करते हैं (शून्य) करता है:
- 15. एक फ़ंक्शन पैरामीटर सूची में एक अनियंत्रित चर गुजर रहा है अच्छी तरह से परिभाषित?</p> <pre><code>void bar(bool b, double f) { if (b){ double g = f; } } void foo() { double f; bool b = false; bar(b, f); } </code></pre> <p>वहाँ किसी भी अपरिभाषित व्यवहार यहाँ है:
- 16. विम जनस <D-F><D-/>
- 17. हास्केल: 'पार' क्यों परिभाषित किया गया था?</p> <pre><code>par :: a -> b -> b </code></pre> <p>ध्यान दें, कि तर्क एक फेंक दी जाती है:
- 18. Jsoup मैं तत्वों का एक सेट में एचटीएमएल है इसलिए इस</p> <pre><code><b><a title="San Francisco/Twin Peaks-Lake Merced">Twin Peaks</a></b> </code></pre> <p>की तरह अन्य मदों हो सकता है नेस्टेड टैग हटा लेकिन रखने के पाठ
- 19. JQuery, <a> टैग
- 20. onclick <a> JQuery
- 21. <img><a> के अंदर नीली सीमा
- 22. jQuery मोबाइल `<a />`
- 23. ऑब्जेक्ट्स 'ए == बी` की तुलना कैसे करें सच होने के लिए?</p> <pre><code>function F(){}; var a = new F(); var b = new F(); </code></pre> <p><strong>क्यू</strong>:
- 24. एंड्रॉइड वेबव्यू: <a> और <img>
- 25. "एक <= b && b <= a && a! = B" कैसे सच हो सकता है?
- 26. एसईओ: <button> बनाम <a> एचटीएमएल टैग
- 27. स्ट्रिंग अक्षर जिसमें '\ 0' है - वे समान क्यों नहीं हैं?</p> <pre><code>char* a = "test"; char* b = "test"; char* c = "test\0"; </code></pre> <p>और अब सवाल:</p> <p>1) क्या यह है कि <code>a==b</code> गारंटी
- 28. <a href="#">Click here</a> का क्या अर्थ है?
- 29. प्रकार 'Async <string []>' प्रकार 'seq <'a>'
- 30. नेस्टिंग <a><button> अंदर फ़ायरफ़ॉक्स
[ 'sequenceA'] (http://hackage.haskell.org/package/base-4.7.0.1/docs/Data-Traversable.html#v:sequenceA) प्रासंगिक है? –
मुझे देखने दो। 'अनुक्रम ए' के प्रकार में सबस्टिट्यूटिंग, हम 't = (->) a' और' f = f' प्राप्त करेंगे। इसलिए यदि '(->) ए' में 'ट्रैवर्सबल' उदाहरण था, तो यह फ़ंक्शन सभी' ए' के लिए मौजूद होगा। मुझे लगता है कि 'ट्रैवर्सबल ((->) ए) '' की आवश्यकता है (हालांकि, एक, एनम ए) बढ़ाया गया है या समकक्ष है। –
इसके लायक होने के लिए, [ब्रह्मांड] (http://hackage.haskell.org/package/universe) पैकेज परिवार [आवश्यक 'ट्रैवर्सबल' उदाहरण] प्रदान करता है (http://hackage.haskell.org/package/universe -reverse-उदाहरणों-1.0/docs/src/डेटा-यूनिवर्स-उदाहरण-Traversable.html)। –