使用[Int]和[[String]] Haskell进行索引

Jer*_*sen 1 string indexing int haskell list

我在指数[Int][[String]],现在我只是想保持[String]其对应指数:

[0,1,4][[a,a,a],[b,b,b],[c,c,c],[d,d,d],[e,e,e],[f,f,f]]

会给 [[a,a,a],[b,b,b],[e,e,e]]

所以 [Int] -> [[String]] -> [[String]]

我怎么能这样做?

我试过了 map (!!) (x y)

其中x是[[String]],y是[Int]

chi*_*chi 5

也许你正在寻找这样的东西:

foo :: [Int] -> [[String]] -> [[String]]
foo indices strings = map (strings !!) indices
Run Code Online (Sandbox Code Playgroud)

类型也可以推广到

foo :: [Int] -> [a] -> [a]
Run Code Online (Sandbox Code Playgroud)

因为我们不需要列表清单.

这不是非常有效.例如,如果我们可以假设指数正在增加,那么可以大大改善.