当我尝试显示负双精度或浮点数时,为什么会出现分段错误?负整数没有问题。
Prelude> let a = 4
Prelude> :t a
a :: Integer
Prelude> let b = -4
Prelude> b
-4
Prelude> :t b
b :: Integer
Prelude> let c = 5.6
Prelude> :t c
c :: Double
Prelude> let d = -5.6
Prelude> :t d
d :: Double
Prelude> show d
"-Segmentation fault
我尝试了各种各样的方式,似乎正确理解了数字,但没有显示。版本信息:
ghci --version
The Glorious Glasgow Haskell Compilation System, version 6.10.4
答案 0 :(得分:6)
MacPorts上的GHC似乎被打破了。见https://trac.macports.org/ticket/25265
考虑从haskell.org安装Haskell平台,其中包括GHC 6.12.3和一堆Haskelly好东西。
答案 1 :(得分:2)
你应该意识到的最重要的事情是,在Haskell中永远不会发生分段错误。它的类型系统确保在运行时不会出现“出错”。如果您确实看到了分段错误,那么您的Haskell编译器中存在错误,或者您正在使用Haskell FFI与C代码连接,并且您的C代码出现了问题。但是,在纯Haskell代码中,你永远不应该看到这一点。
答案 2 :(得分:1)
2011年3月:这在Haskell Platform的GHC 7版本中得到修复,其中32位和64位Mac本机端口都处于良好状态。
答案 3 :(得分:0)
在6.12.3上为我工作。可能是该版本中的错误。