【发布时间】:2016-07-27 01:46:24
【问题描述】:
我是 Haskell 的新手,我正在尝试学习如何使用 classe,
我有课:
class SomeClass f where
doSome :: Integer -> f
数据类型:
data SomeData = D1 Integer
| D2 SomeData SomeData
我正在尝试创建实例:
instance SomeClass SomeData where
doSome x = D1 x
但是 ghci 给了我错误:
无法将预期类型“f”与实际类型“SomeClass”匹配
我已经看到一些关于这个问题的问题,但我无法让它们为我工作。
我该如何解决这个问题?
【问题讨论】:
-
缩进是错误的,我真的怀疑你的方法被命名为
do。你能提供你的实际代码吗? -
@Red Barton Tnx! - 你是对的,我的缩进是错误的(名字也是,我编辑了我的问题以反映这一点,但这不是重要的部分)。修复它后,它按预期编译和运行(arrr 错误代码根本没有用)
-
@Red Barton 这会教我在“where”子句后缩进
-
好的,太好了。我必须承认,我从来没有想过在函数的类型签名和它的定义之间放置一个实例声明在语法上是有效的。
-
不要用修复更新问题......现在看起来你问“我有[这里的代码完美运行],为什么它不起作用?”
标签: haskell