列表列表Haskell

时间:2015-04-09 10:42:55

标签: list haskell list-comprehension

我正在尝试获得一对坐标,我有这个功能输出:[9,0,9,1] .......等

addVal :: Int -> [Int] -> [Int]
 addVal i [] = []
 addVal i (x:xs) =  i:x : addVal i xs

但我希望输出是一个列表列表:[[9,0],[9,1]]

addVal :: Int -> [Int] -> [[Int]]
addVal i [] = [[]]

我如何得到它所以它会使每一对成为一个列表,所以我可以使用它与我的其他函数来获得最小的对

1 个答案:

答案 0 :(得分:1)

你几乎在那里,而不是i:x你必须使用[i,x]。请注意,您需要新列表中的元素,因此您需要创建[i,x]并将其传递出来。

addVal :: Int -> [Int] -> [[Int]]
addVal i [] = []
addVal i (x:xs) =  [i,x] : addVal i xs

演示ghci

λ> addVal 9 [1,2]
[[9,1],[9,2]]