Ocaml Core_kernel.Heap和Core_kernel.FHeap之间有什么区别?
Jane Street的Core_内核库有两个基于以下内容的堆实现: 模块Core\u kernel.Heap 基于配对堆的堆实现 () 模块Core\u kernel.Fheap 功能堆(作为配对堆实现) ()Ocaml Core_kernel.Heap和Core_kernel.FHeap之间有什么区别?,ocaml,ocaml-core,Ocaml,Ocaml Core,Jane Street的Core_内核库有两个基于以下内容的堆实现: 模块Core\u kernel.Heap 基于配对堆的堆实现 () 模块Core\u kernel.Fheap 功能堆(作为配对堆实现) () 从描述来看,我不清楚它们之间有什么区别。什么时候使用一个或另一个?区别在于您第二句话中的“功能性”一词:Heap是一个强制实现,也可以通过签名看到,例如add函数: val add : 'a t ‑> 'a ‑> Core_kernel__.Import.unit 它返回
从描述来看,我不清楚它们之间有什么区别。什么时候使用一个或另一个?区别在于您第二句话中的“功能性”一词:
Heap
是一个强制实现,也可以通过签名看到,例如add
函数:
val add : 'a t ‑> 'a ‑> Core_kernel__.Import.unit
它返回单元
,并就地修改现有堆
另一方面,FHeap
是功能性的,这意味着像add这样的操作将创建新对象,保留原始对象不变:在这种情况下,add的签名是
val add : 'a t ‑> 'a ‑> 'a t