gpt4 book ai didi

haskell - 如何在 GHCi 中列出具有应用类型参数的类型的实例

转载 作者:行者123 更新时间:2023-12-03 21:56:11 26 4
gpt4 key购买 nike

我注意到我不知道如何让 GHCi 打印关于复合类型的信息。让我们考虑例子

data X a = X (a Int)
type XList = X []

instance Show XList where show (X l) = "X (" ++ show l ++ ")"

我想看看“X []”是如何实现 Show 的。

尝试 1

λ :i (X [])

<interactive>:1:2: error: parse error on input ‘X’

尝试 2 - 打印列表实例但不打印 (X [])

λ :i X []

尝试 3 - 与实例无关

λ :i XList
type XList = X [] -- Defined at <interactive>:20:1

尽管如此,Show 实例在适用时仍在运行

λ show (X [1,2,3])
"X ([1,2,3])"

λ show (X ['1'])

<interactive>:31:18: error:
• Couldn't match expected type ‘Int’ with actual type ‘Char’

最佳答案

:info(:i 的缩写)仅适用于名称,不适用于表达式。要获取表达式的实例,请使用 :instances相反:

λ :instances (X [])
instance [safe] Show XList -- Defined at <interactive>:6:10
instance [safe] Show XList -- Defined at <interactive>:6:10

关于haskell - 如何在 GHCi 中列出具有应用类型参数的类型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61715829/

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