gpt4 book ai didi

haskell - Haskell中如何确定文字的类型?

转载 作者:行者123 更新时间:2023-12-02 14:08:29 25 4
gpt4 key购买 nike

当我测试 GHCi 中的文字类型时,我发现

Prelude> :t 1
1 :: Num p => p

Prelude> :t 'c'
'c' :: Char

Prelude> :t "string"
"string" :: [Char]

Prelude> :t 1.0
1.0 :: Fractional p => p

问题是Haskell如何确定这种文字的类型?我在哪里可以找到相关信息?

此外,是否有任何方法可以改变GHC解释文字类型的方式?

例如:

 -- do something

:t 1
1 :: Int -- interprets 1 as Int rather then Num p => p

:t 1.0
1.0 :: Double -- interprets 1.0 as Double rather then Fractional p => p

提前致谢。

最佳答案

您可以要求 ghci 默认类型变量:

$ ghci
λ> let x = 3
λ> :type x
x :: Num p => p
λ> :type +d x
x :: Integer
λ> :type +d 1
1 :: Integer
λ> :type +d 1.0
1.0 :: Double

:type +d 将使 ghci 选择类型变量的默认类型。另外,这是一般的 Haskell 默认规则:

default Num Integer
default Real Integer
default Enum Integer
default Integral Integer
default Fractional Double
default RealFrac Double
default Floating Double
default RealFloat Double

您可以了解更多about it here .

关于haskell - Haskell中如何确定文字的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52771596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com