2
Haskell是否有可能使用另一个整数B矢量对中的矢量A进行索引,即A[B] = [ A[B[0]], A[B[1]], ... ]
?这似乎是计划进一步的版本,如Vector tutorial,第2.11节所示。Indexing Data.Vector with index of array
当然,人们总是可以编写一些功能来做到这一点,但这会涉及很多复制。
Haskell是否有可能使用另一个整数B矢量对中的矢量A进行索引,即A[B] = [ A[B[0]], A[B[1]], ... ]
?这似乎是计划进一步的版本,如Vector tutorial,第2.11节所示。Indexing Data.Vector with index of array
当然,人们总是可以编写一些功能来做到这一点,但这会涉及很多复制。
最好是使用backpermute
基本上是map (xs!)
但更有效。
您可以轻松地map
和(!)
为此,
index :: Vector a -> Vector Int -> Vector a
index as bs = map (as!) bs
准确。但这就是我所说的“写一些功能”。 @choener的答案使用库函数(可能会更加优化),因此从我的角度来看更好。 – dsuess