值的 Ocaml 表示 - 原子
Ocaml representation of values - Atoms
我查看了一些 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 值的内部表示。空数组的表示是 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 指令。