functionがあり、次のセマンティックでそれを使用しsmallStep :: Command -> Data -> Either StepError Dataたいと思います。bigStep :: [Command] -> Data -> Either StepError Data
bigStep [] data = Right data
bigStep c:cs data = do
data' <- bigStep cs data
smallStep c data'
複雑なことは何もありませんが、smallSteptypeがあれば、単純に としてCommand -> Data -> Data実装します。bigStepbigStep commands data = foldr data smallStep commands
当然、ここも利用したいfoldr。どうすればいいですか?foldMが解除されfoldl、リストを逆にするのはあまり良い考えではないように思えます。