IMHO ist das Binden einer Variablen an eine andere Variable oder einen Ausdruck ein sehr verbreitetes Szenario in der Mathematik. Tatsächlich denken viele Schüler am Anfang, dass der Zuweisungsoperator (=) eine Art Bindung ist. In den meisten Sprachen wird die Bindung jedoch nicht als native Funktion unterstützt. In einigen Sprachen wie C # wird die Bindung in einigen Fällen unter bestimmten Bedingungen unterstützt.
IMHO war die Implementierung dieser Funktion als native Funktion jedoch so einfach wie das Ändern des folgenden Codes:
int a,b,sum;
sum := a + b;
a = 10;
b = 20;
a++;
zu diesem-
int a,b,sum;
a = 10;
sum = a + b;
b = 20;
sum = a + b;
a++;
sum = a + b;
Dies bedeutet, dass die Bindungsanweisung nach jeder Anweisung als Zuweisung platziert wird, wobei die Werte einer der im Ausdruck enthaltenen Variablen auf der rechten Seite geändert werden. Danach können redundante Anweisungen (oder die Optimierung in der Assembly nach der Kompilierung) gekürzt werden.
Warum wird es in den meisten Sprachen nicht nativ unterstützt? Speziell in der C-Sprachfamilie?
Aktualisieren:
Aus unterschiedlichen Meinungen denke ich, ich sollte diese vorgeschlagene "Bindung" genauer definieren.
- Dies ist eine Einbahnstraße. Nur die Summe ist an a + b gebunden, nicht umgekehrt.
- Der Umfang der Bindung ist lokal.
- Sobald die Bindung hergestellt ist, kann sie nicht mehr geändert werden. Das heißt, sobald die Summe an a + b gebunden ist, ist die Summe immer a + b.
Hoffe, die Idee ist jetzt klarer.
Update 2:
Ich wollte nur diese P # -Funktion . Hoffe, dass es in Zukunft dort sein wird.