如何`List + List = List [List]]`

时间:2014-05-02 03:56:10

标签: haskell

如何将List添加到另一个列表,返回列表列表?

foo :: [a] -> [a] -> [[a]]

例如,我想要的结果:

foo [1,2] [3,4]

将是[[1,2], [3,4]]

++无效:

*Main> [1,2] ++ [3,4]
[1,2,3,4]

2 个答案:

答案 0 :(得分:10)

当然这会起作用吗?

foo :: [a] -> [a] -> [[a]]
foo a b = [a, b]

答案 1 :(得分:7)

你自己几乎写下了问题的答案,这有点好笑:

  

foo [1,2] [3,4]   会是[[1,2],[3,4]]。

现在,您需要做的只是从具体的示例值中抽象出来!例如,将[1,2]替换为a,将[3,4]替换为b。然后你可以告诉Haskell你想要

  

foo a b = [a,b]

就是这样!虽然它的类型比你想要的更通用。