如果我有Traversable
个实例xs
,我该如何将其转换为Vector
?
答案 0 :(得分:11)
所有Traversable
个实例也是Foldable
,因此您可以编写类似
toVector :: Foldable t => t a -> Vector a
toVector = Vector.fromList . Foldable.toList
{-# INLINE toVector #-}
这可能会成为一个中间列表,如果它没有被融合掉。内联应该有助于使融合更有可能。