3
Hedgehog은 다음과 같이 정의 된 HTraversable
클래스가 : 값이 콘크리트 또는 추상 여부를 통해 유형을 매개 변수화에 대한 자신의 Var
유형에 사용되는상위 traversable functors에 해당하는 optic이 있습니까?
-- | Higher-order traversable functors.
--
class HTraversable t where
htraverse :: Applicative f => (forall a. g a -> f (h a)) -> t g -> f (t h)
. t
은 (* -> *) -> *
종류이며 실제로는 해당 클래스가 없어도 상위 차수의 펑터입니다. f
, g
및 h
은 종류가 * -> *
입니다. 몇 가지 다른 라이브러리에서 정의 된 것과 동일한 것을 보았습니다.
광섬유를 얻을 수있는 방법이 있습니까? 나는 그게 뭘 할 지 모르겠다 고 고백하며, 나는 렌즈 나 보통 Traversable
중 어느 쪽이라도 편안하지 않다.
음, 흥미 롭습니다. 그래서 거기에는 상응하는 것이 있습니다. 그러나 그것은 다른 광학계와 정말로 맞지 않습니다. 나는 이것이 작동하는 "higher order optics"세트가 있는지 궁금합니다. –
'HTraversable'는 Functor 카테고리에 속한 Functor 카테고리에서 Hask에 이르기까지의 객체를위한 것입니다. 'Traversable'이'itraverse :: Applicative f => (forall x. ax -> f (bx)) ->와 같이 보이도록 Funner 카테고리 (예 : 모나드 변압기)에서 _endofunctors_ 카테고리로 작업 할 수 있습니다. forall x.sx-> f (tx))'와 같이 표현할 수있다. 이 유형의 순회는'. (.) '로 구성되며, 프리즘 등도 만들 수 있습니다. 하지만 'HTraversable'과 'ITraversable'은 '렌즈'와 상호 운용되지 않습니다. 왜냐하면 그들은 서로 다른 범주에 있기 때문입니다. –