OCaml - 在类型中指定数组的大小

OCaml - specify size of array in type

假设我想定义一个 OCaml 类型的浮点数组。这可以这样做 type exampletype = Array of float。但是假设我想将这种类型限制为只包含固定大小的数组。是否可以创建这样的类型,或者在这种情况下,使用适当大小的浮点数元组会更有效吗?

OCaml 数组类型不包括大小。如果你的数组不是太大,你确实可以使用元组来在编译时强制执行它们的大小。

可以在您的 OCaml 类型中对数字进行编码,从而在编译时强制执行大小。但就我个人而言,我发现由此产生的结构带来的麻烦远远超过它们的价值。要很好地做到这一点,需要一种为此目的而设计的语言。我听说它们被称为“依赖类型”语言。这个想法是他们的类型可以包含值(例如表示数组大小的特定数字)。