【发布时间】:2021-04-30 18:16:31
【问题描述】:
OCaml 手册指出:
作为另一个优化,unboxable 记录类型被特别表示;不可装箱记录类型是只有一个字段的不可变记录类型。
(https://caml.inria.fr/pub/docs/manual-ocaml/intfc.html#ss:c-tuples-and-records)
但是那个“一个字段”可以有哪个类型呢?仅原生,还是任何记录类型?
【问题讨论】:
OCaml 手册指出:
作为另一个优化,unboxable 记录类型被特别表示;不可装箱记录类型是只有一个字段的不可变记录类型。
(https://caml.inria.fr/pub/docs/manual-ocaml/intfc.html#ss:c-tuples-and-records)
但是那个“一个字段”可以有哪个类型呢?仅原生,还是任何记录类型?
【问题讨论】:
任何类型:OCaml 内存表示是统一的。
更准确地说,就内存表示而言,OCaml 值要么是整数,要么是指向块的指针。 一个块由一个标头组成,后跟许多值。
拆箱将指向仅包含一个 OCaml 值的块的指针的拆箱内存表示替换为此值。
【讨论】:
int list字段的未装箱记录?也许您可以添加几个有意义的示例?