我有一个数组,并在状态单子阵列索引。 我可以通过读取IDX use
以及使用修改+=
和其他类似的修饰:
{-# Language TemplateHaskell #-}
import Control.Lens
import Control.Lens.TH
import Control.Monad.State
import Data.Array
data M = M { _arr :: Array Int Int, _idx :: Int }
$(makeLenses ''M)
foo x = do
idx += x
ii <- use idx
return ii
现在我想结合arr
和idx
形成一个镜头arr[idx]
combo arr idx = undefined
bar x = do
combo arr idx += x
ii <- combo arr idx
return ii
我怎样才能做到这一点? 将代码是不同Data.Sequence
?