11
Bir Traversable
örneğim varsa, xs
, nasıl bir Vector
dönüştürebilirim?Nasıl bir Haskell Vector dönüşebilir dönüştürmek için?
Bir Traversable
örneğim varsa, xs
, nasıl bir Vector
dönüştürebilirim?Nasıl bir Haskell Vector dönüşebilir dönüştürmek için?
Tüm Traversable
Örnekler de Foldable
, bu yüzden uzağa erimiş almazsa, gerçi bir ara liste hale getirebileceğini
toVector :: Foldable t => t a -> Vector a
toVector = Vector.fromList . Foldable.toList
{-# INLINE toVector #-}
Bu gibi bir şey yazabilirsiniz. Çizgiler füzyonun daha olası olmasına yardımcı olmalıdır.
Ben sadece bir çekim vardı ve daha büyük engel gibi görünüyor, 'Vector' tüketicileri, temelde, sadece kütüphanenin' Stream 'türüne verimli bir şekilde dönüştürebilecek veri türleri ile birleştirebilirsiniz. Bu yüzden, 'Vector' tüketicilerini keyfi bir' Katlanabilir 'ile neden birleştiremediğinizi düşünmüyorum çünkü uncons :: [a] -> Belki (a, [a])' yi neden uygulayamıyorsunuz? sadece 'foldr'. ("Katlanabilir.foldr" ve "Stream.unfoldr" terimleriyle "toVector" yazmayı deneyin, "Katlanabilir.toList" i yeniden etkinleştirmeden - Yapılabileceğini sanmıyorum ...) Böylece çözümünüz uygun olabilir . –