2
私はこの機能にTraverseをExceptTとListで使用する方法は、すべてのアイテムがLeftの場合にのみLeftを返します。例えば
foo :: Int -> ExceptT String (State Int) Int
foo x = if x == 0 then throwError "x == 0" else return x
を持っていると私はtraverse
evalState (runExceptT $ traverse foo [0,1,2]) 0
を使用している場合、それは
Left "x == 0"
を返します。しかし、私はRight [1,2]
をしたいと、それはときにのみ、すべてのリストLeft
を返す必要があります商品はゼロです
あなたは空のリストのために何を返すのですか? –
それは私の場合、それは問題ではないので、それは 'Right'または' Left'である可能性があります – ais
['ExceptRT'](https://hackage.haskell.org/package/errors-2.1.2 /docs/Data-EitherR.html)有用です。 – dfeuer