Tor*_*nny 1 enums haskell exception typeclass ghc
我发现
Prelude> :i ()
data () = () -- Defined in `GHC.Tuple'
instance Bounded () -- Defined in `GHC.Enum'
instance Enum () -- Defined in `GHC.Enum'
instance Eq () -- Defined in `GHC.Classes'
instance Ord () -- Defined in `GHC.Classes'
instance Read () -- Defined in `GHC.Read'
instance Show () -- Defined in `GHC.Show'
Run Code Online (Sandbox Code Playgroud)
所以,mean()是Enum的一个实例,应该已经实现了该succ函数.但是,当我尝试时succ (),我得到了*** Exception: Prelude.Enum.().succ: bad argument
我搜索了GHC.Tuple应该定义()类型的源代码但是GHC.Tuple
Die*_*Epp 10
该succ函数仅为具有后继的参数定义.
Prelude> succ False
True
Prelude> succ True
*** Exception: Prelude.Enum.Bool.succ: bad argument
Prelude> succ 0
1
Prelude> succ 1
2
Prelude> succ ((2^63 - 1) :: Int)
*** Exception: Prelude.Enum.succ{Int}: tried to take `succ' of maxBound
Prelude> succ ()
*** Exception: Prelude.Enum.().succ: bad argument
Run Code Online (Sandbox Code Playgroud)
所以答案是:函数已实现,它只是(正确地)返回错误.
| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |