[英]Why is MVector not Foldable?
我可以理解為什么MVector
類型(來自vector
包)不實例化Foldable
類型 class 嗎? 我想人們經常需要迭代向量。 我可以將其freeze
為Data.Vector
,然后進行迭代。 但我討厭改變這些東西,好像我們對String
、 Text
、 Bytestring
等做得不夠。
就我而言,我想打印每個元素。
從可變向量中讀取需要在關聯的 monad 中執行效果 - IO
或ST s
。 但是Foldable
要求你能夠產生一個純粹的答案; 如果有實例,我們至少必須能夠實現
foldr :: (a -> b -> b) -> b -> MVector s a -> b
即使調用者選擇了沒有提到IO
或ST
的b
。 哎呀!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.