小编Stc*_*b12的帖子

Haskell:通过`fromIntegral`了解类型转换机制

通过了解类型转换 fromIntegral

因此,最近我遇到了很多类型转换错误。这使我开始使用fromIntegral,尽管我对它的工作方式感到困惑。

minimalExample :: Integer -> Integer
minimalExample a = truncate y
    where
        x = fromIntegral (a + 10)
        y = x - 12 * (x / 13)
Run Code Online (Sandbox Code Playgroud)

请注意,我必须使用fromIntegral哪种方式确保操作员的x类型正确(/)。如果x是Integral类型,那将行不通。对GHCI中的函数进行类型检查会得到以下信息:

Prelude> :t fromIntegral
fromIntegral :: (Integral a, Num b) => a -> b

Prelude> :t (/)
(/) :: Fractional a => a -> a -> a
Run Code Online (Sandbox Code Playgroud)

显然fromIntegralInt/ Integer转换为某些Num类类型(哪个?我不知道)。除法中缀运算符期望两个小数作为输入。现在看一下该图,该图总结了Haskell中的标准type-class-relations。

Num在上面Fractional …

haskell types

2
推荐指数
1
解决办法
68
查看次数

标签 统计

haskell ×1

types ×1