5

当我尝试显示负双精度或浮点数时,为什么会出现分段错误?负整数没有问题。

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
4

4 回答 4

6

MacPorts 上的 GHC 似乎坏了。见https://trac.macports.org/ticket/25265

考虑改为从 haskell.org 安装 Haskell 平台,其中包括 GHC 6.12.3 和一系列 Haskelly 好东西。

于 2010-11-04T21:51:35.907 回答
2

你应该意识到的最重要的事情是在 Haskell 中不应该出现分段错误。它的类型系统确保在运行时不会出现类似的“错误”。如果您确实看到了分段错误,那么您的 Haskell 编译器中存在错误,或者您正在使用 Haskell FFI 连接 C 代码并且您的 C 代码出现问题。然而,在纯 Haskell 代码中,您永远不会看到这一点。

于 2010-11-05T01:02:16.247 回答
1

2011 年 3 月:这在Haskell 平台的 GHC 7 版本中得到修复,其中 32 位和 64 位 Mac 原生端口都处于良好状态。

于 2011-05-02T21:24:57.030 回答
0

在 6.12.3 上为我工作。可能是那个版本的错误。

于 2010-11-04T21:40:51.397 回答