Domanda

Recentemente Erik Meijer e altri hanno mostrano come IObservable/IObserver è il dual di IEnumerable/IEnumerator. Il fatto che essi sono doppi mezzi che qualsiasi operazione su un'interfaccia vale dall'altro, fornendo così una base teorica per il Estensioni noreferrer reattivi per .Net

Esistono altre interfacce dual? Sono interessato a qualche esempio, non solo .Net base.

È stato utile?

Soluzione

Un altro esempio sarebbe TextReader e TextWriter, anche se c'è ancora più rumore in caso di osservabili e enumerables. In linea di principio le firme di tipo sarebbero:

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

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

Altri suggerimenti

Un altro esempio è il tipo di prodotto a.b e il tipo di somma A + B di due tipi A e B. In Haskell si possono scrivere come:

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

qui per i dettagli

Covarianza e controvarianza è un altro esempio. Penso. Potrei sbagliarmi.

Bart De Smet dice : "esistono sacco di dualità in varie discipline, che prevedono trasferimenti grande conoscenza tra domini diversi. Ad esempio, in logica formale, la legge di De Morgan permette la conversione espressioni costruite dal congiunzioni in quelli costruiti da disgiunzione, e viceversa. in elettronica, esistono analogie tra il comportamento dei condensatori e induttanze : conoscersi e come andare avanti e indietro tra i domini, e sai l'altra Fourier calcolo fornisce duali tra il dominio del tempo e della frequenza ".. Interessante.

Si chiamano anche System.Reactive il duale di System.Interactive. Così la maggior parte delle funzioni in una delle assemblee ha il duplice nell'altra. Per chiarire, non è solo che IO è il duale di IE, ma le funzioni che operano su di essi sono anche dualized.

Quindi, per rispondere alla tua domanda, esistono molte interfacce dualized. È possibile dualize qualsiasi interfaccia. Basta scambiano ingressi e uscite e la direzione della funzione. Alcuni non sarà utile, o sarà il doppio di se stessi. Tuttavia, a volte ci sono quelli veramente potenti che si nascondono in attesa di essere scoperto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top