IMHO powiązanie zmiennej z inną zmienną lub wyrażeniem jest bardzo częstym scenariuszem w matematyce. W rzeczywistości na początku wielu uczniów uważa, że operator przypisania (=) jest rodzajem wiązania. Ale w większości języków wiązanie nie jest obsługiwane jako funkcja natywna. W niektórych językach, takich jak C #, wiązanie jest obsługiwane w niektórych przypadkach, przy spełnieniu niektórych warunków.
Ale IMHO zaimplementowanie tego jako funkcji natywnej było tak proste, jak zmiana następującego kodu:
int a,b,sum;
sum := a + b;
a = 10;
b = 20;
a++;
do tego-
int a,b,sum;
a = 10;
sum = a + b;
b = 20;
sum = a + b;
a++;
sum = a + b;
Oznacza umieszczenie instrukcji wiązania jako przypisań po każdej instrukcji zmieniającej wartości dowolnej zmiennej zawartej w wyrażeniu po prawej stronie. Po tym nastąpi przycięcie zbędnych instrukcji (lub optymalizacja w zestawie po kompilacji).
Dlaczego więc nie jest obsługiwany natywnie w większości języków. Szczególnie w rodzinie języków C?
Aktualizacja:
Z różnych opinii uważam, że powinienem bardziej precyzyjnie zdefiniować proponowane „wiążące”
- Jest to wiążące w jedną stronę. Tylko suma jest związana z + +, a nie odwrotnie.
- Zakres powiązania jest lokalny.
- Po ustanowieniu powiązania nie można go zmienić. Oznacza to, że gdy suma zostanie przypisana do + b, suma zawsze będzie a + b.
Mam nadzieję, że pomysł jest teraz jaśniejszy.
Aktualizacja 2:
Chciałem tylko tej funkcji P # . Mam nadzieję, że będzie tam w przyszłości.