gpt4 book ai didi

haskell - Haskell 如何将整数文字转换为不同类型?

转载 作者:行者123 更新时间:2023-12-04 17:43:42 27 4
gpt4 key购买 nike

我有以下匿名函数:

*Exercises> g = \(Sum n) -> Sum (n - 1)

我像这样使用它:
*Exercises> g (Sum 56)
Sum {getSum = 55}
*Exercises> g 56
Sum {getSum = 55}

第二个例子,编译器如何转换 56Sum 56 ?

在前奏中,我看到了 SumNum 的一个实例,但不清楚转换。

最佳答案

当 Haskell 看到一个整数文字,例如 56 ,它将其解释为 fromInteger 56 . fromInteger的类型是 Num a => Integer -> a ,所以这段代码的类型是 Num a => a . (任何类型,这里称为 a ,它是 Num 类的成员。)

这意味着当您在 Num 的成员的上下文中使用它时预计( Sum 在您的情况下),它将“设置” aSum ,然后选择 fromInteger 的版本类型 Integer -> Sum .因此fromInteger 56 :: Sum .

关于haskell - Haskell 如何将整数文字转换为不同类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44802606/

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