事例の有無-trivalデュアルタ
質問
最近ではエリック-Meijerており、その他のどのように IObservable/IObserver
は デュアル の IEnumerable/IEnumerator
.ということもあり、デュアルその他運用上の二つの指定されたインタフェースが有効なのは、このように提供する理論的基盤の 反応性Extentionsます。当期純
他の二面がありますか?私はいえないところです。純ます。
解決
別の例は、TextReader
とTextWriter
あろう。原則的には型シグネチャは以下のようになります:
interface ITextReader {
// Read: void -> int
int Read();
}
interface ITextWriter {
// Write: int -> void
void Write(int val);
}
他のヒント
別の例は、2個のタイプAおよびBのハスケルの製品種別A.B和型A + Bである、あなたは、それらを書くことができ
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
チェックここの詳細については、
共変性と反変性は別の例です。おもう。私が間違っている可能性があります。
バートデスメットはに言う:「二重性の多くが中に存在します異なるドメイン間の優れた知識転送を提供する様々な分野、例えば、正式なロジックで、ド・モルガンの法則は、選言から構築されたものに接続詞から構築された表現、およびその逆に変換することができる。電子機器では、類似性は、コンデンサとインダクタンスの挙動の間に存在します:1、どのようにドメインの間を行き来するを知っている、とあなたは他のフーリエ結石を知っていることは、時間と周波数ドメイン間の双対を提供します「。面白います。
またSystem.InteractiveのSystem.Reactiveデュアル呼び出します。だから、アセンブリのいずれかで、機能のほとんどは、それが他の二重のしています。明確にするために、それはIOがIEの二重のですが、それらを操作する関数も二重化されていることだけではありません。
だからあなたの質問に答えるために、多くの二重化インタフェースが存在します。あなたは、任意のインターフェイスをdualizeすることができます。あなただけの入力と出力と機能の方向を入れ替えます。いくつかは有用ではないだろうか、自分自身のデュアルになります。しかし、時々発見されるのを待って隠れて本当に強力なものがあります。