gpt4 book ai didi

haskell - 数据声明 Haskell 中的类型约束

转载 作者:行者123 更新时间:2023-12-02 18:39:55 25 4
gpt4 key购买 nike

我正在使用 Haskell 并尝试编写以下内容:

data Scale s = Scale s s

但是,我想让 s 必须是 Num 类型类的内容,例如 Int 或 Double。使用 Haskell 和 GHC 可以做到这一点吗?

最佳答案

是的:

{-# LANGUAGE GADTs #-}
data Scale s where
Scale :: Num s => s -> s -> Scale s

但是,通常认为最好不要这样做。这样做。相反,仅将 Num 约束放在使用 Scale需要 Num 约束的函数上。放松这些约束可以让你在适当的时候暂时打破不变量;例如通常希望此类类型有一个 Functor 实例,但如果您按上述方式约束构造函数,则这是不可能的。

关于haskell - 数据声明 Haskell 中的类型约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825878/

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