You can change everything with reflection, even the interned values for strings and boxed integers. This is a good one to hold in reserve for April fools day... If you're going to reflect then ALL bets are off :)
Otherwise, it's semantics. method params are immutable unless, the standard keyword for values is "val" (equivalent to final in Java), and collections in the standard library are immutable unless you explicitly import mutable variants. Yes, *of course* you can choose to use mutable collections or to use vars, this is why I say "encourages" immutability. If I were to claim that scala "forces" immutability, then the grounds for calling me out on this would be far, far stronger. On 25 November 2011 01:01, Takeshi Fukushima <[email protected]> wrote: > how about reflection? > > I'm joking of course so more to the point: those seems to be examples of > how the library encourages you to use immutable data structures whereas > what Cedric seems to be implying is that the language itself doesn't (or > that is how i read his response anyway) > > On Thu, Nov 24, 2011 at 10:50 PM, Kevin Wright > <[email protected]>wrote: > >> C'mon! >> >> 1. Open a fresh scala REPL. No imports, no other lines of code, just a >> clean standard REPL >> 2. val m = Map(1->"a",2->"b",3->"c") >> 3. Your challenge, should you accept it, is to manipulate m in such a way >> as to change its value >> 3a. and no, creating a new m doesn't count >> >> >> 2011/11/25 Cédric Beust ♔ <[email protected]> >> >>> >>> On Thu, Nov 24, 2011 at 3:42 PM, Kevin Wright >>> <[email protected]>wrote: >>> >>>> it embraces the same ideals of immutability that he once championed >>> >>> >>> We already went through >>> this<http://groups.google.com/group/javaposse/msg/ec7eb89d89bdcd17>, >>> Scala "the language" does very little to enforce immutability. Hardly more >>> than Java. >>> >>> -- >>> Cédric >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "The Java Posse" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/javaposse?hl=en. >> > > > > -- > http://mapsdev.blogspot.com/ > Marcelo Takeshi Fukushima > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > -- Kevin Wright mail: [email protected] gtalk / msn : [email protected] quora: http://www.quora.com/Kevin-Wright google+: http://gplus.to/thecoda <[email protected]> twitter: @thecoda vibe / skype: kev.lee.wright steam: kev_lee_wright "My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger" ~ Dijkstra -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
