Jos*_*tor 8 haskell numeric typeclass
所以我喜欢Haskell,但我对Num课程不满意.所以我想为代数类型创建自己的类型类层次结构.
问题是,即使我导入Prelude隐藏Num以及与之相关的所有内容,仍然使文字1具有类型t的唯一方法是使t实例为Num.
我很乐意从整个班级制作自己的东西,并将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"
Run Code Online (Sandbox Code Playgroud)
然后我会适当地为整个类型实现fromInteger,而不必对Num说任何话.
有没有办法告诉解析器使用不同的fromInteger方法?
谢谢!
dav*_*420 12
您正在寻找GHC的RebindableSyntax扩展.
通过推杆启用它
{-# LANGUAGE RebindableSyntax #-}
Run Code Online (Sandbox Code Playgroud)
在源文件的顶部.
归档时间: |
|
查看次数: |
866 次 |
最近记录: |