我查看了一些 OCaml 值的内部表示。空数组的表示是 atom(0)
,即具有 tag=0
的块和 size=0
.空的浮点数组由 atom(0)
表示也。
是否有由 tag > 0
的原子表示的任何 OCaml 值? ?如果不是:OCaml 字节码集包含 ATOM n
的目的是什么操作说明?
最佳答案
标签 > 0 用于带参数的构造函数,这将使它们不是原子。另一方面,没有参数的构造函数存储为 int 而不是块,因此同样不是原子。所以我认为 atom(0) 没有被使用。除了 ...
有一个内联记录为空的构造函数怎么样?
# type t = A of int | B of { };;
Error: Syntax error
似乎不允许空记录。除了直接创建这样的块之外,我想不出另一种方法来创建带有标记的 0 大小的块。但这不会使用 ATOM 指令。
关于值的 Ocaml 表示 - Atoms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42486650/