В императивном программировании, используя операторы, вы делаете такие вещи, как:
a = 10
b = a * 2
print a # 20
Я думал, что эквивалент в выражениях должен выглядеть примерно так:
print with(a=10){with(b=a*2){return b}}
Это написано на убитом питоне, но это не должно иметь значения, оно должно иллюстрировать, что я имею в виду. Вместо изменения состояния переменной в программе (которая затем остается неизменной), она изменяет его в области блока для любых выражений в этой области.
Вероятно, есть название для такого рода вещей. Я не знаю ни одного чисто функционального языка, но я думаю, что такого рода вещи были бы весьма полезны для вычисления временных значений, когда операторы присваивания не существуют. Кто-нибудь знает, как это называется, на каких языках это встроено, и где я могу найти больше информации об этом?