class A a
instance A (Int -> Float)
不作品和能功能是类的实例在Haskell
class B b
instance B Int
工作 如果在Haskell函数被取为第一类和(中间体 - >浮动)是undoubtly一类型,虽然它不是(*)的具体类型,为什么不能职能是类实例
class A a
instance A (Int -> Float)
不作品和能功能是类的实例在Haskell
class B b
instance B Int
工作 如果在Haskell函数被取为第一类和(中间体 - >浮动)是undoubtly一类型,虽然它不是(*)的具体类型,为什么不能职能是类实例
随着FlexibleInstances扩展,你可以这样做:
{-# LANGUAGE FlexibleInstances #-}
module TestFlexibleInstances where
class A a
instance A (Int -> Float)
是,函数类型是不是很特别哈斯克尔:
module Test where
instance Show (a -> b) where
show _ = "(function)"
正如在他的回答中指出新鸿基,如果你要修复的域或范围的类型,您将需要一个扩展如FlexibleInstances - 但与函数类型无关,并且对于其他类型的构造函数应用程序(如Maybe Int
)也是必需的。
谢谢,它真的工作 – TorosFanny
它确实有效,我怎么能知道一些问题是由于缺少语言扩展? – TorosFanny
@ user1926094错误消息GHC试图尝试一个实例Foo(Int - > Float),其中......应该包含(在不太老的GHC中)'FlexibleInstances'的建议。 –
我真的发现错误信息包含“使用-XFlexibleInstances,如果你想禁用这个”,但我只将它作为shell编译时的选项。现在我意识到它也是一个语言扩展 – TorosFanny