作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要我的数据类型中的数值列表
数据多项式 = 多项式 {xs::(Num a) => [a] } 推导(显示)
但我仍然收到此错误
error: Not in scope: type variable ‘a’
最佳答案
In Haskell 98, only functions can have type constraints.
为了做你想做的事,你可以用类型参数声明 Polynomial
。然后编写具有适当类型约束的函数。
data Polynomial a = Polynomial xs
deriving (Show)
这允许您构造具体的多项式类型,例如 Polynomial Int
或 Polynomial Float
甚至 Polynomial String
。对 Polynomial
类型进行操作的函数可以在类型参数上声明约束。例如,添加两个多项式的函数可以具有以下签名:
(+) :: (Num a) => Polynomial a -> Polynomial a -> Polynomial a
冲洗并根据每个功能重复。
关于haskell - 错误 : Not in scope: type variable [Haskell],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50193020/
我是一名优秀的程序员,十分优秀!