Ответ 1
Философия Функциональное программирование Парадигма сильно ориентирована на то, чтобы все "переменные" были неизменными, а "изменчивые" были разрешены только в экстремальных условиях случаев (т.е. для ввода/вывода). Поэтому большинство функциональных языков программирования, таких как различные диалоги Lisp и Haskell, будут (чаще всего) усиливать неизменяемые переменные. Конечно, некоторые языки предлагают большую гибкость, чем другие, но центральная парадигма/философия остается, что ее обескураживает.
Изменить: в ответ на ваше редактирование:
Если вы ищете C-with-friendlier-константы, то принятие совершенно новой парадигмы программирования не является вашим решением. В функциональном программировании все является неизменным (в большинстве случаев), и вы обычно смотрите на совершенно новую фундаментальную философию и подход к программированию.
На самом деле это не решение, если все, что вам нужно, - упростить объявление констант.
Edit2: В ответ на людей, которые меня выказывают:
В то время как я сделал правильно (надеюсь), отвечу на вопрос об этом, я не уверен, что это был ответ, который оказался полезным, учитывая его новое редактирование/комментарий. Тем не менее, я могу надеяться, что, возможно, открою глаза на совершенно новый красивый мир программирования =)
Edit3: Список Википедии функциональных языков программирования:
- АПЗ
- Благотворительность (чисто функциональная)
- Чистый (чисто функциональный)
- Curl
- Карри
- Erlang
- F #
- Haskell (чисто функциональный)
- CAL
- Hop
- J
- Joy
- Kite
- Lisp
- Clojure
- Общий Lisp
- Дилан
- Маленький b
- Логотип
- Схема
- Чай
- Lush
- Mathematica
- Miranda
- ML
- Стандарт ML
- Алиса
- Ocaml
- Mythryl
- Nemerle
- Opal
- OPS5
- Poplog
- R
- Q
- РЕФАЛ
- Рассел
- Scala
- Электронные таблицы
Большинство из этих языков имеют некоторые незначительные элементы/влияния нефункциональной ереси; те, которые обозначены как "чисто функциональные", не делают.
(Насколько мне известно, языки функционального программирования - единственные, которые поддерживают философию неизменяемых переменных. Возможно, существуют языки, которые по умолчанию не имеют переменных, которые не являются функциональными по парадигме. Понятие звучит для меня довольно странно, но Я не могу гарантировать одеяло "никогда никогда", учитывая огромное, огромное, огромное количество языков программирования. Я просто скажу, что это, насколько мне известно, крайне маловероятно)
Комментирует, что ADA - это языковой язык с обязательным/объектно-ориентированным языком с неизменяемыми переменными по умолчанию.