Да, это в принципе особенность всех декларативных языков такого плана, Erlang, ML (и наследники CaML / Obj-CamML), Scheme и т.п. в них не используются переменные. Если вы будете размышлять логично, то значение любой вашей переменной вычисляется (т.е. его можно описать функцией), либо задается один раз (константа). Проблема которую решают переменные заключается в том, что иногда не практично много раз вызывать функцию (т.как результат уже один раз был получен). Но, хороший код старается избегать повторных вызовов функций (конечно, иногда это неизбежно), но, тем не менее, к этому нужно стремится
fish_r:
Это теория немного другого плана, отношение к глобальным переменным в ней - это следствие (одно из). Следуя ей, естесственным образом не будет возникать проблем с глобальными переменными т.как контекст переменной будет всегда определятся областью, в которой она может быть только одна, и, естесственным образом же, не будет возможных конфликтов, когда `кто-то неизвестный меняет значение'. Но это теория, а не практическое руководство к действию. Ее нужно осознать и сделать максимально похоже
