Как преобразовать Haskell Traversable в вектор?

Если у меня есть Traversable пример, xs Как я могу преобразовать его в Vector?

1 ответ

Все Traversable экземпляры также Foldable, так что вы можете написать что-то вроде

toVector :: Foldable t => t a -> Vector a
toVector = Vector.fromList . Foldable.toList
{-# INLINE toVector #-}

Это может составить промежуточный список, хотя, если это не слилось. Подкладка должна помочь сделать слияние более вероятным.

Другие вопросы по тегам