GHCI 中未评估的功能
Function not evaluating in GHCI
如果我为 maxBound 分配一个变量:
let bInt = maxBound
评估 bInt
打印 ()
但是如果我输入 bInt
bInt :: Int
prints : 9223372036854775807
为什么 bInt 在我键入之前不计算
bInt (bInt :: Int) ?
maxBound
是 Bounded
类型 class 中的函数。默认情况下,GHCi 似乎为 ()
选择实例,即 returns ()
。您可以通过添加类型签名强制它使用另一个实例。
let bInt :: Int; bInt = maxBound
bInt -- 9223372036854775807
let x = maxBound
x :: () -- ()
x :: Bool -- True
x :: Char -- '14111'
如果我为 maxBound 分配一个变量:
let bInt = maxBound
评估 bInt
打印 ()
但是如果我输入 bInt
bInt :: Int
prints : 9223372036854775807
为什么 bInt 在我键入之前不计算
bInt (bInt :: Int) ?
maxBound
是 Bounded
类型 class 中的函数。默认情况下,GHCi 似乎为 ()
选择实例,即 returns ()
。您可以通过添加类型签名强制它使用另一个实例。
let bInt :: Int; bInt = maxBound
bInt -- 9223372036854775807
let x = maxBound
x :: () -- ()
x :: Bool -- True
x :: Char -- '14111'