在haskell中列出理解

时间:2017-02-12 13:52:36

标签: haskell list-comprehension

我是Haskell的新手并且了解列表。我有以下列表[1, 2, 3]和另一个列表[4, 5, 6]。我试图找到一种方法来获得以下输出:

[[1, 2, 3, 4], [1, 2, 3, 5], [1, 2, 3, 6]]

也就是说,对于第二个列表中的每个元素,我想创建一个新列表,这是第一个附加了该元素的列表。

1 个答案:

答案 0 :(得分:4)

如果a = [1, 2, 3]b = [4, 5, 6],您可以执行以下操作:

map (\x -> a ++ [x]) b

对于b的每个元素,map将应用函数\x -> a ++ [x]。 此功能连接两个列表a[x]

您也可以将其写为列表理解:

[a ++ [x] | x <- b]