2014-08-27 13 views
5

Mi chiedevo perché i termini Covariance e Contravariance si chiamano così nel dominio della programmazione. Di solito si ascoltano questi termini nella teoria della probabilità o nelle statistiche che indicano la diffusione delle grandezze misurate rispetto alla media.Perché la cecarianza e la controvarianza si chiamano così?

  • Qual è l'idea per prendere in prestito questi termini da Statistiche?
  • In che modo questi termini descrivono questa diffusione nel dominio di programmazione?
  • Quale sarebbe la media nel dominio di programmazione?

So che Covariance è la capacità di assegnare un'espressione di un tipo più specifico a una variabile di un tipo meno specifico ma, c'è un'altra interpretazione per questo?
Gli esempi relativi a entrambi questi domini sarebbero utili.

+0

La varianza è solo "differenza" - nelle statistiche è correlata a quanto i campioni variano dalla media; nella programmazione è il modo in cui i tipi variano (indipendentemente dal fatto che si possano usare relazioni sottotipo/supertipo ecc.). –

+1

Perché pensi che provenga da 'Statistiche'? Viene dalla 'teoria delle categorie' secondo [wikipedia] (http://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29#Origin_of_the_term_.22covariance.22). –

+0

Questo è il motivo per cui mi piace la decisione 'in T' /' out T' in C#; è piuttosto intuitivo che significano, senza dover ricordare quale è la –

risposta

1

Non sono un matematico, quindi non cercherò di rispondere alla mia domanda, ma puoi trovare una spiegazione meravigliosa alla tua domanda su Tomas Petricek's blog.

Spiega in dettaglio come covarianza e controvarianza nella programmazione sono correlate alla teoria della categoria matematica pura.

Problemi correlati