Haskell 给出类型错误的类型同义词
我正在尝试创建一个看起来像这样的类型同义词:
data Result = Either String [Token]
我遇到了困难,因为在编译此代码时,当我尝试使用 [Token] 创建结果时,haskell 抱怨
Not in scope: data constructor `Result'
如何使用构造函数定义类型同义词那行得通吗?!
I am attempting to create a type synonym that looks something like this:
data Result = Either String [Token]
I'm having difficulty because while this code compiles, when I attempt to create a Result with a [Token], haskell complains
Not in scope: data constructor `Result'
How can I define a type synonym with a constructor that works?!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您如何尝试创建
结果
?正确的方法是:
如果您将其声明为
data
:或者,如果您将其声明为
type
:How are you trying to create a
Result
??The correct way is:
If you declare it as a
data
:Or, if you declare as a
type
:使用
数据构造函数是
因为
您
声明
Result
具有一个双参数构造函数,Either
的类型 a) 可能不是您想要的 b) 令人困惑,因为
Either
是众所周知的类型构造函数。With
the data constructors are
because
With
you declare
Result
to have one two-argument constructor,Either
with typewhich is a) probably not what you want and b) confusing, because
Either
is a well-known type constructor.我认为你需要使用类型而不是数据
I think you need to use type and not data