11
votes

Exemples d'interfaces doubles utiles ou non triviales

Récemment Erik Meijer et d'autres d'autres ont montré comment iobservable / iobserver est le Dual de iEnumerable / ienumerator . Le fait qu'ils soient dual signifie que toute opération d'une interface est valide sur l'autre, offrant ainsi une base théorique pour le extension réactive pour .NET

Les autres interfaces doubles existent-elles? Je suis intéressé par un exemple, pas seulement .net basé.


1 commentaires

Soyez prudent avec le terme "double interface". Bien que l'utilisation du terme double est évidemment correcte ici, la phrase double interface est généralement associée à itispatch et l'automatisation, qui est un peu déroutant (C'est ce que je pensais que cette question était à peu près avant que je l'ai ouverte).


3 Réponses :


3
votes

Un autre exemple serait textreader et textwriter , bien qu'il y ait encore plus de bruit que dans le cas d'observables et d'énumérables. En principe, les signatures de type seraient: xxx


0 commentaires

3
votes

Un autre exemple est le type de produit A.B et le type de type A + B de deux types A et B. Dans HASKELL, vous pouvez les écrire comme suit:

Data Prod A B = P A B - Ceci est identique à celui du type de paire (A, B)

Somme de données A B = gauche A | B - la même chose que le type B B

vérifier ici pour plus de détails


0 commentaires

2
votes

Covariance et Contravariance en est un autre exemple. Je pense. Je pourrais avoir tort.

BART DE SMET dit : "Beaucoup de dualités existent dans Diverses disciplines, prévoyant de grands transferts de connaissances entre différents domaines. Par exemple, dans la logique formelle, la loi de Morgan permet de convertir des expressions construites à partir de conjonctions construites à partir de disjonctions, et inversement. Dans l'électronique, il existe entre le comportement des condensateurs et des inductances : connaissez-en un et comment aller et venir entre les domaines et vous connaissez l'autre. Fourier Calculus fournit duals entre les domaines de temps et de fréquence. " Intéressant.

Ils appellent également le système.Reactive le double du système.interactive. Donc, la plupart des fonctions de l'une des assemblées ont donc dual de l'autre. Pour clarifier, ce n'est pas seulement que l'IO est la double de c.-à-delle, mais les fonctions qui les utilisent sont également dualisées.

Pour répondre à votre question, de nombreuses interfaces dualisées existent. Vous pouvez dualiser n'importe quelle interface. Vous échangez simplement des entrées et des sorties et la direction de la fonction. Certains ne seront pas utiles ou seront la dual d'eux-mêmes. Cependant, parfois, il y a des cachés très puissants en attendant d'être découverts.


0 commentaires