3

谁能给我解释一下?我正在使用最新版本的 GHC。

Prelude> let f x = 1/((x**2)-36)  
Prelude> f (0 - 6.5)  
0.16  
Prelude> f (0 - 5.999)  
-Segmentation fault  
Prelude> f (0 - 5)  
-Segmentation fault

谢谢!

编辑:GHCi 版本 6.10.4,Mac OS 10.6,Intel Macbook Pro
Edit2:GHCi 7.0.3 没有这个问题。

4

3 回答 3

1

有趣的是,我在这里没有遇到段错误(在 MacOS 上是这样):

GHCi, version 7.0.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.

Prelude> let f x = 1/((x**2)-36)  
Prelude> f (0 - 6.5)  
0.16
Prelude> f (0 - 5)  
-9.090909090909091e-2
Prelude> 
于 2011-05-12T16:37:17.247 回答
1

适用于带有 GHC 7.02 的 Windows XP:

GHCi, version 7.0.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> let f x = 1/((x**2)-36)
Prelude> f (0 - 6.5)
0.16
Prelude> f (0 - 5.999)
-83.34027835650902
Prelude> f (0 - 5)
-9.090909090909091e-2
Prelude>
于 2011-05-12T16:50:18.007 回答
1

GHCi 版本 6.10.4,Mac OS 10.6,英特尔 Macbook Pro

在这种情况下要做的第一件事是检查该软件的最新稳定版本。

  • GHC 6.10.4 于 2009 年 7 月发布。
  • GHC 7.0.3 现已于 2011 年 5 月推出。

因此,通过Haskell Platform升级到 GHC 7.0.3,然后再次检查。

如果您仍然有错误,请通过错误跟踪器报告它,因为任何崩溃都需要高优先级的错误修复。

于 2011-05-12T17:12:28.583 回答