【发布时间】:2016-05-06 22:11:35
【问题描述】:
我正在尝试创建一个带有子向量的向量,该向量由使用子向量索引的向量从另一个向量中取出的元素组成。
b 中的每个元素对应于a 中的元素在放入c 时应具有的子向量索引。
import Data.Vector
let a = fromList [9,2,3,7,4,1,8,5]
let b = fromList [3,3,2,0,1,1,2,2]
let c = fromList [ a ! k | k <- b ]
Expected c = [[7],[4,1],[3,8,5],[9,2]]
我有点卡住了,收到错误
“无法将预期类型 [Int] 与实际类型 Vector Integer 匹配 在 stmt 列表理解中 k
【问题讨论】:
-
您在寻找
backpermute吗? -
不,在反向置换中,索引向量包含应该从
a获取的值的索引,但我的索引向量b包含应该放置元素的子列表索引。 -
如果不自己摆弄 ST 和中间可变向量,您肯定不会得到这种行为;我不希望它是内置的。
标签: haskell vector haskell-vector