Fry*_*Fry 5 haskell types integer
我有一个haskell函数,它计算有限Ints列表的大小.我需要输出类型为Integer,因为该值实际上将大于Int的最大边界(如果输出类型是Int,则结果将是-1以确切)
size :: a -> Integer
size a = (maxBound::Int) - (minBound::Int)
Run Code Online (Sandbox Code Playgroud)
我理解Ints(有界)和Integers(无界)之间的区别,但我想从Int创建一个Integer.我想知道是否有像fromInteger这样的函数,这将允许我将Int转换为Integer类型.
Don*_*art 11
您需要将值转换为Integers,这可以通过fromIntegral函数(Haskell的数字转换)完成:
fromIntegral :: (Integral a, Num b) => a -> b
Run Code Online (Sandbox Code Playgroud)
它将Integral类中的任何类型转换为(较大的)Num类中的任何类型.例如
fromIntegral (maxBound::Int) - fromIntegral (minBound::Int)
Run Code Online (Sandbox Code Playgroud)
但是,我真的不相信你采取的方法 - 它似乎非常脆弱.存在允许环绕的类型的行为是非常可疑的.
你的意思是:"有限Ints列表的大小".如果它不是列表的长度,那么这个意义上的大小是多少?
| 归档时间: |
|
| 查看次数: |
8147 次 |
| 最近记录: |