Haskell:总结列表的元素

时间:2016-05-09 12:36:54

标签: list haskell

我必须总结这样一个列表的元素,例如: 如果您的输入为['a','b','c'],则输出应为["a","ab","abc"]。 但我不知道如何编码这个...有人可以给我一个提示吗? 我将非常感激!

1 个答案:

答案 0 :(得分:2)

所有这些提示都很好,但你可能也很难与这些提示

我建议你从这里开始:

sumList [] = []
sumList [x] = [[x]]
sumList (x:xs) = ... : map (...) (sumList xs)

并尝试找出你必须放入...的内容(提示不一样;)

第一行只是为了给空列表提供一些合理的结果作为输入 - 你可以删除它(递归不应该命中)

第二个将执行[1] -> [[1]]

现在你必须弄清楚如何处理更多 - 这是一个额外的提示:

sumList [1,2]
{ 3. line - x = 1, xs = [2] }
= ... : map (...) (sumList [2])
{ 2. line }
= ... : map (...) [[2]]

现在你想要

= [[1],[1,2]]

所以看起来你可以用

做到这一点
first ... = [1]
second ... = map (prepend 1) to every list in [[2]]