首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'+‘不是一个可见的类方法

'+‘不是一个可见的类方法
EN

Stack Overflow用户
提问于 2017-10-10 20:56:31
回答 2查看 5.3K关注 0票数 1

我试图在Haskell做这样的定制结构:

代码语言:javascript
运行
复制
data Interval = Interval Float Float 
instance Interval Float Float where
(Interval a b) + (Interval c d) = Interval (a + c) (b + d)
(Interval a b) - (Interval c d) = Interval (a - c) (b - d)

但是,每次错误都会发生,比如:

“+”不是类“间隔”的可见方法。

那我该怎么做呢?

EN

Stack Overflow用户

发布于 2017-10-10 21:21:34

你做了什么,

代码语言:javascript
运行
复制
data Interval = Interval Float Float 

这里您说的是Interval是一个具有一个构造函数(也称为Interval)的类型,它有两个未命名的Float字段。

代码语言:javascript
运行
复制
instance Interval Float Float where

这里您说的是Interval是一个类型类(而不是一个类型),它接受作为Float提供的两个类型参数,这意味着在某个地方有一行可以读取class Interval a b where ...

代码语言:javascript
运行
复制
(Interval a b) + (Interval c d) = Interval (a + c) (b + d)
(Interval a b) - (Interval c d) = Interval (a - c) (b - d)

在这里,假设您要缩进,您将定义两个函数,它们是Interval类型类的方法(不存在),这些方法名为+-

您可能想要的

我想你想要定义一种类型,间隔,然后你做到了。

我认为您希望定义加法和减法,这是Num类型类的方法:

代码语言:javascript
运行
复制
instance Num Interval where
    (Interval a b) + (Interval x y) = Interval (a + b) (x + y)
    ...
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46675885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档