制作列表列表 Haskell

Making List of Lists Haskell

我正在尝试获取坐标对,我有这个函数输出:[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]]