gpt4 book ai didi

haskell - 在 Haskell 中覆盖 fromInteger

转载 作者:行者123 更新时间:2023-12-04 06:21:48 26 4
gpt4 key购买 nike

所以我喜欢 Haskell,但对 Num 类不满意。
所以我想为代数类型创建自己的类型类层次结构。
问题是,即使我导入 Prelude 隐藏 Num 以及与之相关的所有内容,使文字 1 具有类型 t 的唯一方法仍然是使 t 实例 Num。
我很想制作自己的 fromInteger 类,并将 Num 完全排除在图片之外,就像这样

import Prelude hiding (everything having to do with Num)
import qualified Prelude (everything having to do with Num)

class (Eq fi) => FromInteger fi where
fromInteger :: Integral -> fi

foo :: (FromInteger fi) => fi -> String
foo 1 = "that was a one"
foo 0 = "that was a zero"
foo n = "that was neither zero nor one"

然后我会为全新的类型适本地实现 fromInteger,而不必对 Num 说任何话。

有没有办法告诉解析器使用不同的 fromInteger 方法?

谢谢!

最佳答案

您正在寻找 GHC 的 RebindableSyntax extension .

通过放置启用它

{-# LANGUAGE RebindableSyntax #-}

在源文件的顶部。

关于haskell - 在 Haskell 中覆盖 fromInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978395/

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