GHCi, version 7.4.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.
Prelude> let fac 0 = 1
Prelude> let fac n = product [1..n]
Prelude> fac 100000
Segmentation fault: 11
有谁知道为什么会这样?
fac 10000
作品
在 OS X 10.8.2 上运行
嗯,所以从文件加载:
fac :: Integer -> Integer
fac 0 = 1
fac n = product [1..n]
运行。
同样有趣的是,使用
fac :: Int -> Int
返回. 0
_ fac 100000
我本来预计(就像 JohnL 一样)会出现错误。
这个网站提到:
- 更具体地说,SegmentationFault 是一种类型不安全的语言拼写为 DoesNotUnderstand 的一种方式。在像 Haskell 这样的类型安全的静态类型语言中,您不应该看到段错误。
它与 IO monad 有关吗?