많은 유형의 광학 장치는 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
와Applicative
with 사이에 또 다른 type-class를 가지고liftA2
있지만 순수하지 않다면 , 그것은 one에서 many로 광학을 정의 할 것이라고 생각합니다. 목표로 습니까? 이름이 있습니까?