0
我试图让我的头绕过序列函数。我认为这可能会有所帮助,如果我把它作为一个递归函数来写的话,但是我认为它是一个单调的表达式,我觉得有点难以转换为递归,所以我有点不知所措。我的意思是你用return(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