我只想使用foldr编写一个函数,该函数返回给定列表的所有前缀的列表。因此,如果列表为[4,5,6]
,我将返回[[],[4],[4,5],[4,5,6]]
。到目前为止,我有
preFix :: [a] -> [[a]]
preFix x = foldr preFixHelp [[]] x
preFixHelp :: a -> [[a]] -> [[a]]
preFixHelp x acc = [x] : acc
但是那只会返回[[4],[5],[6]]
。谢谢!
标准库中已经有一个函数可以做到这一点:Data.List.inits
Data.List.inits