Haskell中的外来类型与未装箱类型

时间:2017-01-03 17:20:39

标签: haskell ghc

例如CIntInt#CInt#之间的关系是什么?

例如,如果我调用一个返回CInt的外部函数,那么它是否已经构造为CInt#(即,它是堆栈上的原始int,而不是指向堆上包含int)的东西的指针?

在这种情况下,CIntInt#之间有什么区别?

如果我想尝试一下我可以使用的所有性能,从CIntInt#以及CInt#使用哪一个?

1 个答案:

答案 0 :(得分:5)

我不认为有CInt#这样的事情。

  • CInt只是一种自定义类型,可以保证与C良好匹配(请参阅the blurb at the top of this page了解更正式的内容)。它是盒装的,因此你可以获得性能。
  • Int#是一个"魔法" unboxed int。事实证明,它是does play well with the FFi,所以如果你想要所有的表现,请使用它。
相关问题