From: Ryan Pavlik Date: 2003-11-17T19:03:55+09:00 Subject: Proposal for a new operator - .= OK so it's late, I'm not thinking straight, and I thought I'd post this. Proposal for a new operator - .= ================================ Ruby has a number of useful operators, including some for combined operation/assignment, such as +=, -=, etc. This proposal is for a new operation/assignment operator, .= (period-equals). Existing operators follow this form: a += b # => a = a + b a -= b # => a = a - b The proposed .= operator would follow in an identical fashion: a .= b # => a = a.b For instance, some practical applications: # We're passed an object, we want to do work on it def foo(x) x .= dup : end # We have an operation for which there is no bang! method: hash .= invert # Similar to the last, we have an object which a bang method # is impossible: i = 5 i .= succ # => 6 # Following from that, we can't really change what an object _is_, # but with .= we don't need to: c = 65 c .= chr # => "A" This has the following important advantages: * It provides a generic operation/assignment operator * Much like existing operation/assignment operators, it saves space and increases readability * It confuses Perl programmers Support this new operator for Ruby! --------------------------------------------------------------------------- (The preceding was 90% a joke. I don't actually have any serious expectation of a .= operator in Ruby. I imagine it would be a bit hairy to implement. I actually thought of it after doing "s = s.dup" a few times, and there may be a few good uses for it, but... this was for entertainment purposes only. ;-) -- Ryan Pavlik "Every day shall be sword day." - 8BT