Императивные языки программирования позволяют переопределять переменные, например,
x = 1
x = 2
Таким образом, x сначала имеет значение 1, затем, позже, оно имеет значение 2. Вторая операция является деструктивным обновлением, поскольку x теряет свое первоначальное определение как равное 1.
Это не то, как определение обрабатывается в общей математике. После определения переменная сохраняет свое значение.
Вышеизложенное, рассматриваемое как система уравнений, позволит вычесть первое из второго уравнения, что даст
x - x = 2 - 1 <=> 0 = 1
что является ложным утверждением. Предполагается, что после введения х то же самое.
Знакомое утверждение типа
x = x + 1
приведет к такому же выводу.
Функциональные языки одинаково используют переменные, после того как они определены, их невозможно переназначить. Вышеприведенное утверждение превратится в
x2 = x + 1
и у нас не будет цикла for
или while
, а будет рекурсия или какая-то функция более высокого порядка.