lens ve zippers ile uğraşıyorum. Control.Monad.MonadPlus m => m (Zipper Top Int [Int] :>> A Int)
: kodunun altına düşünün ben gibi fermuar türünü nasıl oluşturabileceğini, data A t = A t
Having ghci
'to` lensi ile fermuar içine adım adım
> 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)
çalıştırmak?
Benwithin (ix 1 . to A) $ zipper ([1,2,3] :: [Int])
çalıştım ama bir hata veriyor:
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)' fonksiyonu: Geçersiz bir
Traversal
yazabiliriz ama yine de düzgün çalışmaz? Burada sadece undefined 'geçebilir miyim eğer benim durumumda bu açık değil mi? – remdezxGerçekten değil. Sorun, geri dönemeyeceksin. Geri almak için 'yukarı 'yi kullanmak bir' undefined 'verecekti. – cchalmers
Anladım ... "Iso" dan başka seçenek var mı? – remdezx