IMHO che lega una variabile a un'altra variabile o un'espressione è uno scenario molto comune in matematica. Infatti, all'inizio, molti studenti pensano che l'operatore di assegnazione (=) sia un qualche tipo di legame. Ma nella maggior parte dei linguaggi, l'associazione non è supportata come caratteristica nativa. In alcune lingue come C #, l'associazione è supportata in alcuni casi con alcune condizioni soddisfatte.
Ma IMHO implementare questa funzionalità nativa è semplice come cambiare il codice seguente:
int a,b,sum;
sum := a + b;
a = 10;
b = 20;
a++;
a questo -
int a,b,sum;
a = 10;
sum = a + b;
b = 20;
sum = a + b;
a++;
sum = a + b;
Significa porre l'istruzione di legame come compito dopo ogni istruzione che modifica i valori di una qualsiasi delle variabili contenute nell'espressione sul lato destro. Dopodiché, il taglio delle istruzioni ridondanti (o l'ottimizzazione in assemblaggio dopo la compilazione) lo farà.
Quindi, perché non è supportato nativamente nella maggior parte delle lingue. Specialmente nella famiglia C delle lingue?
Aggiornamento:
Da diverse opinioni, penso che dovrei definire questa proposta "vincolante" più precisamente -
- Questo è un modo vincolante. Solo la somma è vincolata a + b, non viceversa.
- L'ambito dell'associazione è locale.
- Una volta stabilita l'associazione, non può essere modificata. Significato, una volta che la somma è vincolata a + b, la somma sarà sempre a + b.
Spero che l'idea sia più chiara ora.
Aggiornamento 2:
Volevo solo questa funzione P # . Spero che sarà lì in futuro.