例子的有用或非双接口繁琐
解决方案
另一个例子就是 TextReader
和 TextWriter
, 虽然有更多噪音,比的情况下观测量和enumerables.原则上的类型签名的是:
interface ITextReader {
// Read: void -> int
int Read();
}
interface ITextWriter {
// Write: int -> void
void Write(int val);
}
其他提示
另一个例子是产品类型A.B和总和类型的A+B两种类型的A和B。在Haskell,你可以把它们写为:
data Prod a b = P a b -- this is the same as the pair type (a,b)
data Sum a b = Left a | Right b -- the same as the Either a b type
检查 在这里, 对于细节
协变和逆变的是另一个例子。我认为。我可能是错误的。
巴特De Smet说:"大量的二元性存在各种学科,提供了伟大的知识转让之间的不同领域。例如,在正式的逻辑,De摩根的法律允许的转换表达建成连词入的内从分离,反之亦然。在电子产品中,相似之间存在的行为的电容器和电感:知道的和怎样去回域之间,你知道。傅里叶微积分提供双倍时间和频率之间域。" 有趣的。
他们还呼吁系统。反应的双重的系统。互动。所以大部分的功能于一体的大会有双重的。为了澄清,这不仅仅是那IO是双重的,即,但功能,对它们也是dualized.
所以回答你的问题,许多dualized的接口存在。你可以和任何接口。你只是换输入和输出和方向的功能。某些不会是有用的,或者将是双重的自己。但是,有时存在真正强大的隐藏等待着被发现。
不隶属于 StackOverflow