많은 유형의 광학 장치는 van Laarhoven 표현을 가지고 있습니다.
예를 들어, 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
Monocle 및 Arrow 와 같은 여러 광학 프레임 워크 는이라는 유형을 정의합니다 Optional.
단안경의 광학 계층 구조의에서 Optional 사이 적합 Lens하고Traversal
내가 알고있는 것처럼 : A는 경우 Traversal는 A입니다 Lens가질 수 많은 제로 목표를, 다음은 Optional유사한입니다 Lens가질 수 제로 하나에 목표를.
Monocle에서 Optional함수 쌍으로 정의됩니다.
getOrModify :: s -> Either t a
set :: (b, s) -> t
단안경 소스 코드의 댓글은 그것이를 대표하는 수도 있습니다 제안 Optional"약한으로 PLens약한 PPrism"
대표 할 수 있습니까 Optional 밴 Laarhoven 기능 등을?
Functor와Applicativewith 사이에 또 다른 type-class를 가지고liftA2있지만 순수하지 않다면 , 그것은 one에서 many로 광학을 정의 할 것이라고 생각합니다. 목표로 습니까? 이름이 있습니까?