- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
GenProg m e | e -> m where"-6ren"> GenProg m e | e -> m where"-class (Eq e, GenExpr e, MonadRandom m) => GenProg m e | e -> m where 确切地说,我无法理解这个GenProg m e | e -> -6ren">
class (Eq e, GenExpr e, MonadRandom m) => GenProg m e | e -> m where
确切地说,我无法理解这个GenProg m e | e -> m
我猜 GenProg 是一个构造函数。
这是否意味着:其模式匹配 GenProg m e 或 e -> m 的实例可以被定义?
顺便问一下,我从哪里可以获得 haskell 中的所有语法?
最佳答案
它是一个具有函数依赖性的多参数类型类。 GenProg
是类名,两个参数是m
(必须是MonadRandom
的实例)和e
(必须是 Eq
和 GenExpr
的实例)。然后 |
将实例头与函数依赖 e -> m
分开,这表示实例中的类型 e
决定了类型构造函数m
,换句话说,对于任何类型e
,最多可以有一个m
这样一个
instance GenProg m e where ...
出现在有效程序中。 (即,如果有多个这样的实例声明具有相同的 e
,则会出现编译错误。)
关于haskell - Haskell 中一个奇怪的类型类。什么是 "class (Eq e, GenExpr e, MonadRandom m) => GenProg m e | e -> m where",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8477189/
我有 2 个列表: first_lst = [('-2.50', 0.49, 0.52), ('-2.00', 0.52, 0.50)] second_lst = [('-2.50', '1.91',
当我运行时 a = ["I","love","you"] a = {(word) for word in a} print a 我得到了这个结果 set(['I', 'you', 'love']) 这
class (Eq e, GenExpr e, MonadRandom m) => GenProg m e | e -> m where 确切地说,我无法理解这个GenProg m e | e ->
我是一名优秀的程序员,十分优秀!