我开始学习 Haskell,但我发现很难弄清楚教程跳过的小事。现在我正在使用 Vector.Fixed 形式的元组:
import qualified Data.Vector.Fixed as VF
import qualified Data.Vector.Fixed.Unboxed (Vec 2)
import qualified Data.Vector.Unboxed as VU
let a = VF.mk2 7 7 :: (Int, Int)
let b = VF.mk2 7 7 :: (Vec2 Int)
a
和 有什么区别b
?如何使 VF 向量
f
等效于[a, a] = [(7,7), (7,7)]
?如何使 VU 向量
g
等效于[[a], [a,a]] = [[(7,7)], [(7,7), (7,7)]]
?
convert
对于问题 2 和 3,我在尝试使用该功能时无法克服类型错误。
我知道我的元组总是长度为 2,但我需要一个
f
可以固定大小的元组列表(或其他),另一个g
是二维的(例如[[(1,2),(3,4)],[(1,2)]]
,顶部列表和子列表都不是固定大小。我应该坚持使用相同的类型f
吗g
?Data.Vector.Fixed 和 Data.Vector.Unboxed 似乎都来自同一个包,但它们的维护者不同。可以这么说,它们都是官方的,还是除了它们都是矢量实现之外,它们没有任何相似之处吗?