Если у меня есть Traversable
экземпляр xs
, как его преобразовать в Vector
?
Как конвертировать Haskell Traversable в вектор?
Ответ 1
Все экземпляры Traversable
также Foldable
, поэтому вы можете написать что-то вроде
toVector :: Foldable t => t a -> Vector a
toVector = Vector.fromList . Foldable.toList
{-# INLINE toVector #-}
Это может сделать промежуточный список, хотя, если это не сгорит. Вставка должна помочь сделать слияние более вероятным.