有针对Int,Float等的未装箱类型的GHC。我知道基于它们构建的代码以较少的开销运行,但是我看不到如何基于未装箱的Int向函数输入数据或从中输出数据的方法,即
GHC.Exts定义了函数(+#)和(*#),但是我找不到装箱/拆箱的功能
readInt:: String -> Int#
showInt:: Int# -> String
boxInt :: Int# -> Int
unboxInt :: Int -> Int#
实例Show Int#和实例Read Int#不存在,因为show和read多态。
没有这些功能,如何将未装箱类型的优化代码块与其余应用程序集成在一起?
Int
,Float
等等只是data
GHC中的类型:
data Int = I# Int#
data Float = F# Float#
-- etc.
构造函数仅由导出GHC.Exts
。导入并使用构造函数进行转换:
{-# LANGUAGE MagicHash #-}
import GHC.Exts
main = do I# x <- readLn
I# y <- readLn
print (I# (x +# y))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句