gpt4 book ai didi

haskell - 你如何在 Haskell 中允许 GADT?

转载 作者:行者123 更新时间:2023-12-03 23:31:55 28 4
gpt4 key购买 nike

今天我开始从以下位置了解 GADT:haskell.orghttps://wiki.haskell.org

不幸的是,我不知道如何使用它们。如果我运行示例中的代码,则会收到以下错误:

[1 of 1] Compiling Main             ( test.hs, interpreted )

AFP_229.hs:31:1:
Illegal generalised algebraic data declaration for `Term'
(Use GADTs to allow GADTs)
In the data declaration for `Term'
Failed, modules loaded: none.
Prelude>

这是我正在使用的代码:
data Term a where
Lit :: Int -> Term Int
Succ :: Term Int -> Term Int
IsZero :: Term Int -> Term Bool
If :: Term Bool -> Term a -> Term a -> Term a
Pair :: Term a -> Term b -> Term (a,b)

我尝试了其他示例代码,但这给了我同样的错误。您如何允许 GADT?

最佳答案

Use GADTS to allow GADTS看起来很狂野:)

基本上有两种方法可以启用语言扩展:

  • 路径 a -X<extensions>ghc ,例如ghc -XGADTS
  • {-# LANGUAGE <extension> #-}在文件的顶部,例如{-# LANGUAGE GADTs #-}

  • 最初的错误消息如下所示: Use -XGADTs to allow GADTs ,但实际上语言杂注(第二种方式)更常见,人们开始提示很难从错误消息中复制-n-粘贴扩展名,所以 -X被丢弃了。

    关于haskell - 你如何在 Haskell 中允许 GADT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32828483/

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