Traversal'ın bir listesini kullanabilir miyim? Aşağıdaki kodu:Lens listesi nasıl kullanılır?
f::[Int] -> [[Int]]
f l = [l & i .~ 1 | i<-[ix 0], (l^? i) == Just 0]
bir hata üretir:
• Couldn't match type ‘Const (Data.Monoid.First Int) [Int]’
with ‘Identity [Int]’
Expected type: ASetter [Int] [Int] Int Integer
Actual type: Getting (Data.Monoid.First Int) [Int] Int
• In the first argument of ‘(.~)’, namely ‘i’
In the second argument of ‘(&)’, namely ‘i .~ 1’
In the expression: l & i .~ 1
this question baktığımızda ben açıkça i bir tür vermek nasılsa gerektiğini düşünüyorum, ama her zaman girişimi başarısız olur.
Çok teşekkürler! Bu arada, bir listenin tüm indekslerini döndüren bir kütüphane işlevi var mı? Böyle bir şey: 'indicesOf l = [Traversal $ ix i | i <- [0.. uzun] - 1]] –