首页 > 解决方案 > 为什么 MVector 不可折叠?

问题描述

我可以理解为什么MVector类型(来自vector包)不实例化Foldable类型类吗?我想人们经常需要迭代向量。我可以freezeData.Vector然后迭代。String但我讨厌改变这些东西,好像我们对, Text, Bytestrings 等做得不够。

就我而言,我想打印每个元素。

标签: haskell

解决方案


从可变向量中读取需要在关联的 monad 中执行效果 -IOST s. 但Foldable要求你能够给出一个纯粹的答案;如果有实例,我们至少必须能够实现

foldr :: (a -> b -> b) -> b -> MVector s a -> b

即使来电者选择了一个b没有提及IOST的。哎呀!


推荐阅读