作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很抱歉用这个简单的问题打扰您。我正在尝试了解类型系列扩展的工作原理。当我玩弄它时,我遇到了一个错误,我不知道为什么。
class Foo a b c where
data T a b c :: *
f :: a -> T a b c
g :: T a b c -> b
h :: c -> a -> b
h c a = g $ f a
Could not deduce (Foo a b c0) arising from a use of ‘g’
from the context (Foo a b c)
bound by the class declaration for ‘Foo’
at DB/Internal/Typecast.hs:(17,1)-(25,19)
The type variable ‘c0’ is ambiguous
Relevant bindings include
a :: a (bound at DB/Internal/Typecast.hs:25:9)
h :: c -> a -> b (bound at DB/Internal/Typecast.hs:25:5)
In the expression: g
In the expression: g $ f a
In an equation for ‘h’: h c a = g $ f a
T a b c
中的 c 是如何模棱两可的为
g
.编译器不能得到
c
的类型吗?来自
T a b c
的
f
?
g . f
的组合
最佳答案
注意在定义中
h :: c -> a -> b
h c a = g $ f a
f
没有限制和
g
引用您正在定义的同一个实例
h
为了。 (而且这种灵活性对于定义实例通常很有用。)
g
的结果仅限于同一类型
b
,以及
f
的参数仅限于类型
a
,但没有什么说的
T a b c
从一个传递到另一个使用相同的
c
!
ScopedTypeVariables
并做
h c a = g (f a :: T a b c)
T a b c
不一定确定
c
根本。
关于Haskell 类型族错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32213649/
在C中,protocol family被提及为第一个参数。 例如: ipv4 的套接字(AF_INET,,) socket(AF_PACKET,,) 用于数据包嗅探 Python 支持三个地址族:AF
根据 vfork() 手册页,如果 vfork() 在调用 _exit 或 exec 之前修改除 pid_t 之外的任何数据,则行为未定义系统调用系列。 由此我了解到,如果vfork()创建的子进程调
我是一名优秀的程序员,十分优秀!