Are there programming languages whose “variables” are immutable (const, final, etc) by default?
And, to make it variable, you need to declare an additional immutable qualifier ?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The philosophy of the Functional Programming paradigm is strongly geared towards all “variables” being immutable, and “mutable” ones being only allowed in extreme cases (ie, for I/O). Therefore, most functional programming languages like the various Lisp dialects and Haskell will (more often than not) reinforce immutable variables. Of course, some languages offer more flexibility than others, but the central paradigm/philosophy remains, that discourages it.
Edit: In response to your edit:
If you are looking for a C-with-friendlier-constants, then adopting an entirely new programming paradigm isn’t your solution. In Functional programming, everything is immutable (in most cases), and you’re generally looking at a whole new fundamental philosophy and approach to programming.
This isn’t really a solution if all you want is to make it easier to declare constants.
Edit2: In response to people upvoting me:
While I did correctly (I hope) answer the asker’s question, I’m not sure it was an answer that turned out to be useful, given his new edit/comment. However, I can hope to possibly open his eyes to a whole new beautiful world of programming =)
Edit3: Here is Wikipedia’s List of functional programming languages:
Most of these languages have some minor elements/influences of non-functional heresy; the ones labeled “purely functional” do not.
(To my knowledge, Functional Programming languages are the only ones that encourage immutable variables by philosophy. There may be languages that have variables immutable, by default, that are not Functional by paradigm. The concept sounds quite odd to me, but I can’t guarantee a blanket “never ever” statement, given the vast, vast, vast number of programming languages out there. I’ll just say that it is, to my knowledge, extremely unlikely)
A commenter has suggested that ADA is an Imperative/Object-Oriented programming language with immutable variables by default.