Core_kernel有什么区别.堆和Core_kernel.啦?



Jane Street 的 Core_kernel 库有两个基于配对堆的堆实现:

模块Core_kernel。堆

基于配对堆的堆实现。

(文档)

模块Core_kernel。噶噗噗

函数堆(作为配对堆实现)。

(文档)

从描述中,我不清楚它们之间有什么区别。我什么时候会使用其中一个?

区别在于您的第二个引号中的"功能"一词:Heap是一个命令式实现,这也可以通过例如add函数的签名看出:

val add : 'a t ‑> 'a ‑> Core_kernel__.Import.unit

它返回unit,并就地修改现有堆。

另一方面,FHeap是功能性的,这意味着诸如 add 之类的操作将创建新对象,而原始对象保持不变:在这种情况下,add 的签名是

val add : 'a t ‑> 'a ‑> 'a t

相关内容

  • 没有找到相关文章

最新更新