Frage

Vor kurzem Erik Meijer und anderen zeigen, haben, wie IObservable/IObserver ist die Dual von IEnumerable/IEnumerator. Die Tatsache, dass sie doppelte Mittel sind, dass jede Operation an einer Schnittstelle auf der anderen Seite gültig ist, also eine theoretische Grundlage für die Reactive Extentions für .Net

Do andere duale Schnittstellen existieren? Ich bin in jedem Beispiel interessiert, nicht nur .NET basiert.

War es hilfreich?

Lösung

Ein weiteres Beispiel wären TextReader und TextWriter sein, obwohl es noch mehr Lärm ist als im Fall von Observablen und enumerables. Grundsätzlich wäre die Art Signaturen sein:

interface ITextReader {
  // Read: void -> int
  int Read();
}

interface ITextWriter {
  // Write: int -> void
  void Write(int val);
}

Andere Tipps

Ein weiteres Beispiel ist der Produkttyp A. B und die Summe des Typs A + B von zwei Typen A und B. In Haskell schreiben Sie können sie als:

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

hier Details

Kovarianz und Kontra ist ein weiteres Beispiel. Ich glaube. Ich könnte falsch sein.

Bart De Smet sagt : „Viele Dualitäten existieren in verschiedene Disziplinen, für große Wissenstransfers zwischen verschiedenen Domänen bereitstellt, z. B. in der formalen Logik, De Morgan Gesetz Ausdrücke erlaubt von Konjunktionen in solchen von Disjunktionen gebaut umwandelt und umgekehrt. in der Elektronik gibt es Ähnlichkeiten zwischen dem Verhalten von Kondensatoren und Induktivitäten kennen und wie hin und her zwischen den Domänen gehen, und Sie wissen, die andere Fourier-Kalkül bietet duals zwischen Zeit- und Frequenzbereich „:.. Interessant.

Sie nennen System.Reactive auch die duale System.Interactive. So sind die meisten der Funktionen in einer der Baugruppen hat ist es dual in der anderen. Um zu klären, es ist nicht nur, dass IO die duale IE ist, aber die Funktionen, die auf ihnen arbeiten, sind auch dualisiert.

So Ihre Frage zu beantworten, gibt es viele doppelt vorhandene Schnittstellen. Sie können eine beliebige Schnittstelle dualisieren. Sie tauschen nur Ein- und Ausgänge und die Richtung der Funktion. Einige werden nicht nützlich sein, oder wird die duale selbst sein. Aber manchmal gibt es wirklich Mächtigen versteckt warten entdeckt zu werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top