私はシーケンス関数を頭に入れようとしています。私はそれを再帰関数として書いておけば助けになると思っていましたが、再帰的に変換するのがやや難しいモナド式であると考えて、それをどうやって行うのか少し迷っています。私は返品(x:xs)で何をしているのですか?言い換えれば、私はfoldrなしで関数を記述したいと思います。シーケンス関数をfoldrから再帰関数に変更する
sequence _ = foldr k (return [])
where
k m m' = do { x <- m; xs <- m'; return (x:xs) }
sequence' _ = foldr k (return [])
where
k m m' = m >>=
(\fstr -> m'>>=
(\rstr -> return (fstr:rstr)))
あなたが求めているものは明らかではありません。 – user2297560
foldrなしで関数を書くにはどうしたらいいですか? – user1897830
私なしで関数を書かないでください。 :( – rightfold