gpt4 book ai didi

haskell - a的类型是什么?

转载 作者:行者123 更新时间:2023-12-02 02:52:37 24 4
gpt4 key购买 nike

我有以下声明:

Prelude> :t error "Hello"
error "Hello" :: a

我想知道, a的类型是什么? ?

最佳答案

a是一个类型变量,可以与您喜欢的任何具体类型统一。想加error "Hello"Integer ?好的。

> :t error "Hello" + (3 :: Integer)
error "Hello" + (3 :: Integer) :: Integer

想要添加 Maybe Char值(value)?没问题。
> :t Just 'c' : error "Hello"
Just 'c' : error "Hello" :: [Maybe Char]

随心所欲 a是, error会告诉您它可以返回该类型的值。

当然,这是一个有争议的问题,因为 error永远不会真正回来。
> error "Hello" + (3 :: Integer)
*** Exception: Hello
CallStack (from HasCallStack):
error, called at <interactive>:3:1 in interactive:Ghci1

> Just 'c' : error "Hello"
[Just 'c'*** Exception: Hello
CallStack (from HasCallStack):
error, called at <interactive>:4:12 in interactive:Ghci1

尤其是最后一个: ghci开始输出 [Maybe Char] 类型的值, 并成功输出第一个元素,因为 (:)它的第二个元素是非严格的。直到实际尝试获取第二个值才 error "Hello"得到评估并调用它的“虚张声势”。而不是能够将其与 [] 匹配或 (:) ,发生运行时异常。

关于haskell - a的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62160212/

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