私がいくつか持っているとしましょう。v
これは両方Applicative
であり、またTraversable
です。v
のインデックスでを取得するにはどうすればよいv
ですか? 具体的な例として、V3
fromを考えてみましょうLinear
。欲しいV3 0 1 2
。
1 つの方法はmapAccumL
、ダミーを使用することです。たとえば、次のようになります。
snd $ T.mapAccumL
(\idx _ -> (idx + 1, idx))
0 (pure "") :: V3 Int
しかし、(pure "")
ダミーはエレガントではありません。よりエレガントな方法でこれを行うにはどうすればよいでしょうか?