我如何返回给定列表的所有前缀的列表?

问题描述 投票:0回答:1

我只想使用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]]。谢谢!

haskell fold
1个回答
0
投票

标准库中已经有一个函数可以做到这一点:Data.List.inits

Data.List.inits
© www.soinside.com 2019 - 2024. All rights reserved.