2
例如,我有這個功能如何在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
只有當所有列表項目爲零
你什麼樣的回報爲空表? –
我的情況並不重要,所以它可能是'正確'或'左' – ais
你可能會也可能不會發現['ExceptRT'](https://hackage.haskell.org/package/errors-2.1.2 /docs/Data-EitherR.html)有用。 – dfeuer