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