List 制作列表Haskell

List 制作列表Haskell,list,haskell,list-comprehension,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 [] = [[]] 我如何获得它,使它将每一对都列为一个列表,这样我就可以

我正在尝试获得坐标对,我得到了输出:[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 [] = [[]]

我如何获得它,使它将每一对都列为一个列表,这样我就可以将它与我的其他函数一起使用,以获得最小的对

您就快到了,而不是
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]]

谢谢,我知道它很小,但在Haskell中我不知道。请注意,这是一个映射:
addVal i=map(\x->[i,x])
。我甚至不知道我是否会为此编写一个函数……我正在尝试将我的java代码转换为haskell,因为我可以比较它们,所以我尽可能地按字面意思来做,但谢谢你的帮助