ІМХО, прив'язування змінної до іншої змінної чи виразу, є дуже поширеним сценарієм у математиці. Насправді на початку багато студентів вважають, що оператор присвоєння (=) є якоюсь прив'язкою. Але в більшості мов прив'язка не підтримується як рідна особливість. У деяких мовах, таких як C #, прив'язка підтримується в деяких випадках з виконанням деяких умов.
Але реалізувати це як основну функцію IMHO було так само просто, як і змінити наступний код -
int a,b,sum;
sum := a + b;
a = 10;
b = 20;
a++;
до цього-
int a,b,sum;
a = 10;
sum = a + b;
b = 20;
sum = a + b;
a++;
sum = a + b;
Значення розміщення інструкції зв’язування як присвоєння після кожної інструкції змінює значення будь-якої змінної, що міститься у виразі праворуч. Після цього буде зроблено обрізання зайвих інструкцій (або оптимізація в зборі після компіляції).
Отож, чому вона не підтримується в основному на більшості мов. Спеціально до сімейства мов С?
Оновлення:
З різних думок, я думаю, я мав би визначити це запропоноване "обов'язкове" точніше -
- Це один із способів зв’язування. Тільки сума прив’язана до + b, а не навпаки.
- Область зв’язування локальна.
- Після встановлення прив'язки її неможливо змінити. Значить, як тільки сума прив’язана до + b, сума завжди буде + b.
Сподіваюся, ідея зараз зрозуміліша.
Оновлення 2:
Я просто хотів цю функцію P # . Сподіваюся, це буде там і надалі.