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