6
나는 과 zippers으로 고민 중입니다. Control.Monad.MonadPlus m => m (Zipper Top Int [Int] :>> A Int)
: 코드 아래의 고려는 내가 좋아하는 지퍼의 유형을 만드는 방법, data A t = A t
를 갖는 ghci
'to` 렌즈로 지퍼를 끼고 넣을 때
> import Control.Lens
> import Control.Zipper
>
> :t within (ix 1) $ zipper ([1,2,3] :: [Int])
> within (ix 1) $ zipper ([1,2,3] :: [Int])
:: Control.Monad.MonadPlus m => m (Zipper Top Int [Int] :>> Int)
에서 실행?
나는within (ix 1 . to A) $ zipper ([1,2,3] :: [Int])
을 시도했지만 오류 제공합니다
Could not deduce (Contravariant
(Bazaar (Indexed Int) (A Int) (A Int)))
arising from a use of ‘to’
from the context (Control.Monad.MonadPlus m)
bound by the inferred type of
it :: Control.Monad.MonadPlus m =>
m (Zipper Top Int [Int] :>> A Int)
at Top level
In the second argument of ‘(.)’, namely ‘to A’
In the first argument of ‘within’, namely ‘(ix 1 . to A)’
In the expression: within (ix 1 . to A)
을 (\ (A A) -> A)'기능 : 잘못된
Traversal
쓸 수 있지만 여전히 제대로 작동하지 않습니다? 내 경우에 그렇게 명확하지 않다면 그냥'undefined'를 여기에 전달할 수 있습니까? – remdezx아닙니다. 문제는 당신이 다시 올라갈 수 없다는 것입니다. '위로'를 사용하면 'undefined'가됩니다. – cchalmers
나는 ... Iso보다 다른 옵션이 있습니까? – remdezx