कई प्रकार के प्रकाशिकी में एक वैन लाहरोवेन प्रतिनिधित्व है।
उदाहरण के लिए, इस Lens
प्रकार Lens s t a b
का प्रतिनिधित्व किया जा सकता है:
Functor f => (a -> f b) -> s -> f t
इसी Traversal
तरह से, एक समान तरीके से प्रतिनिधित्व किया जा सकता है, इसके लिए Functor
बाधा को स्वैप करना Applicative
:
Applicative f => (a -> f b) -> s -> f t
कई प्रकाशिकी रूपरेखाएं, जैसे मोनोकल और एरो नामक एक प्रकार को परिभाषित करती हैं Optional
।
मोनोकल के प्रकाशिकी में उत्तराधिकार और के Optional
बीच फिट बैठता हैLens
Traversal
जैसा कि मैं इसे समझता हूं: यदि कोई Traversal
ऐसा है जो कई लक्ष्यों Lens
को शून्य कर सकता है , तो यह एक ऐसा Optional
है जो शून्य से एक लक्ष्य Lens
हो सकता है ।
मोनोक्ले में, Optional
कार्यों की एक जोड़ी के रूप में परिभाषित किया गया है:
getOrModify :: s -> Either t a
set :: (b, s) -> t
मोनोकल स्रोत कोड में टिप्पणी नहीं सुझाव है कि यह भी एक प्रतिनिधित्व करने के लिए संभव है Optional
"एक कमजोर के रूप में PLens
और कमजोर PPrism
"
क्या Optional
वैन लाहरोवेन फ़ंक्शन के रूप में प्रतिनिधित्व करना संभव है ?
Functor
औरApplicative
साथ में एक और टाइप-क्लास थाliftA2
, लेकिन कोई शुद्ध नहीं था, तो यह एक ऑप्टिक को एक से कई लक्ष्यों के साथ परिभाषित करेगा ? क्या इसका कोई नाम है?