我一直在尝试一些 Haskell,因为我对强类型很感兴趣,但我对解决这个问题的最佳方法感到困惑:
Data.Vector 中定义的 Vector 数据类型允许通过嵌套数组的方式进行多维数组。但是,这些是由列表构成的,并且不同长度的列表被认为是相同的数据类型(与不同长度的元组不同)。
我如何扩展这种以相同方式起作用的数据类型(或编写类似的数据类型),除了不同长度的向量被认为是不同的数据类型,因此任何尝试创建具有不同长度行的多维数组/矩阵(对于例如)会导致编译时错误?
元组似乎通过写出 63 个不同的定义(每个有效长度一个)来管理这一点,但如果可能的话,我希望能够处理任意长度的向量。