के रूप में करें, मैं पूरी तरह से लेंस का उपयोग करने के लिए कोड map (^?! ix 0) [[0, 1], [4, 5], [9, 1]]
कोड को कनवर्ट करना चाहता हूं, इसलिए [[0, 1], [4, 5], [9, 1]] & each . ix 0
जैसे कुछ। हालांकि, प्रकार मेल नहीं खाते हैं। ऐसा करने का सही तरीका क्या है?लेंस का उपयोग 'मानचित्र'
उत्तर
उपयोग folded
:
Foldable
पर
Prelude Control.Lens> [[0, 1], [4, 5], [9, 1]] ^.. folded . ix 0
[0,4,9]
काम करता है।
इसके अलावा, यदि आप हमेशा पहले तत्व को निकालने की योजना बनाते हैं, तो शायद ix
के बजाय Control.Lens.Cons
से _head
ट्रैवर्सल का उपयोग करना स्पष्ट होगा।
[[0, 1], [4, 5], [9, 1]] ^.. folded . _head
आप पहली बार मेल खाती
Prelude Control.Lens> [[0, 1], [4, 5], [9, 1]] & each %~ (^?! ix 0)
[0,4,9]
Prelude Control.Lens> [[0, 1], [4, 5], [9, 1]] ^.. each . ix 0
[0,4,9]
दोनों में से किसी का उपयोग कर सकते ठीक है कि तुम क्या लिखा है, असुरक्षित (^?!)
ऑपरेटर, कि यह एक त्रुटि दे सकते हैं जिसका मतलब है कि उपयोग करने के लिए। खाली सूचियों को छोड़कर दूसरा सुरक्षित है।
वे कुछ अलग तरीकों से काम: पहली बार अपने मूल संरचना है, जो map
क्या करता है के लिए और अधिक मेल खाती है का एक संशोधित संस्करण बनाता है, और यह संरचनाओं कि सूचियों नहीं हैं पर इस्तेमाल किया जा सकता है।
दूसरा प्रदान की गई लेंस फोल्ड का उपयोग करके आपकी संरचना का एक सारांश सारांश बनाता है; हालांकि इसका उपयोग कई प्रकार के ढांचे के साथ किया जा सकता है, परिणाम हमेशा एक सूची है।
तुम भी each
traverse
से (के रूप में @danidiaz बताते हैं, थोड़ा और अधिक सामान्य traversed
या,) इस में बदल सकते हैं। पूर्व कई विशेष चीजों जैसे टुपल्स के लिए काम करता है, जबकि बाद में Traversable
के लिए काम करता है।
- 1. लेंस का उपयोग दो बार
- 2. लेंस
- 3. "लेंस"
- 4. लेंस का उपयोग/उपयोगी क्या है?
- 5. हास्केल - लेंस, 'टू' फ़ंक्शन का उपयोग
- 6. लेंस की सूची का उपयोग कैसे करें?
- 7. लेंस
- 8. लेंस लाइब्रेरी का उपयोग करके आंशिक गेटर्स का निर्माण
- 9. निर्माण लेंस
- 10. आइसोमोर्फिज्म लेंस
- 11. Google मानचित्र: Google मानचित्र API v3 का उपयोग करके मानचित्र
- 12. "ऑफिस लेंस" का एपीआई कब उपलब्ध होगा
- 13. संयुक्त लेंस का उद्देश्य क्या है?
- 14. स्कालज़: एक मूल्य लेंस के साथ एक नक्शा लेंस कैसे लिखें?
- 15. प्वाइंट-फ्री लेंस सृजन
- 16. रिवर्स लेंस का नाम क्या है?
- 17. कैबल निर्भरता संकल्प 'लेंस'
- 18. मानचित्र में init() का उपयोग()
- 19. का उपयोग जावा मानचित्र खोज
- 20. स्कालाज़ लेंस संरचना
- 21. नेस्टेड मानचित्र
- 22. FindChessboardCorners लंबे फोकल लंबाई लेंस
- 23. मानचित्र डेटा संरचना का मानचित्र
- 24. पोकेमॉन गो Google मानचित्र API का उपयोग करके कस्टम Google मानचित्र का उपयोग कैसे करता है?
- 25. एंड्रॉइड कैमरा: फिक्स्ड लेंस फोकस
- 26. Google मानचित्र (PHP का उपयोग करके)
- 27. का उपयोग करते हुए मानचित्र() कीवर्ड तर्क
- 28. पायथन: मानचित्र और मल्टीप्रोसेसिंग का उपयोग
- 29. Google मानचित्र ट्रैक API का उपयोग
- 30. दुनिया के ggmap मानचित्र का उपयोग
शायद आप 'ट्रैवर्स' के बजाय 'Control.Lens.Traversal' से' ट्रैवर्स 'का मतलब है? – danidiaz
@ डांडिडियाज़ नोप, मेरा मतलब है 'ट्रैवर्स'। हालांकि यह * लेंस से * नहीं है, इसे इसके एक अनिवार्य हिस्से माना जाता है। –
@danidiaz ओह मैं देखता हूं, * दोनों * यहां काम करते हैं। ऐसा लगता है कि 'ट्रैवर्सड' अधिक सामान्य है, सूचकांक की इजाजत देता है। –