OCaml:Core.Univ 用法示例
OCaml: Core.Univ usage example
所以我一直在研究 Core.Univ 作为构建异构数组的一种方式。
假设我这样做
let int_type = Core.Type_equal.Id.create ~name:"" Sexplib.Conv.sexp_of_int;;
let int_type' = Core.Type_equal.Id.create ~name:"" Sexplib.Conv.sexp_of_int;;
let i = Core_kernel.Univ.create int_type 5;;
let j = Core_kernel.Univ.create int_type' 5;;
当我做的时候
Core_kernel.Univ.match_ i int_type'
它与预期的不匹配,因为 Type_equal.Id
的文档说使用完全相同的参数两次调用 create
将产生两个不同的标识符。
这是否意味着 API 用户负责确保每种类型仅存在一个 Type_equal.Id
实例?
所以我一直在研究 Core.Univ 作为构建异构数组的一种方式。
假设我这样做
let int_type = Core.Type_equal.Id.create ~name:"" Sexplib.Conv.sexp_of_int;;
let int_type' = Core.Type_equal.Id.create ~name:"" Sexplib.Conv.sexp_of_int;;
let i = Core_kernel.Univ.create int_type 5;;
let j = Core_kernel.Univ.create int_type' 5;;
当我做的时候
Core_kernel.Univ.match_ i int_type'
它与预期的不匹配,因为 Type_equal.Id
的文档说使用完全相同的参数两次调用 create
将产生两个不同的标识符。
这是否意味着 API 用户负责确保每种类型仅存在一个 Type_equal.Id
实例?