From: Yossef Mendelssohn Date: 2011-09-29T23:44:51+09:00 Subject: Re: How about new syntax: "object.\method" returns a Method instance? On Sep 28, 8:08 pm, Josh Cheek wrote: > While I'm not sure how I feel about this particular syntax, I think that > better support for getting methods would have some fairly profound changes > to Ruby code. Right now we think this isn't really worth it, because we > don't really do things like this, because the syntax is awkward. But if it > were easier, I think we'd see a lot more of it. > > An example from yesterday, I wrote `File.open csv_name, > &MembersFromCSV.method(:populate)` > > And I honestly almost took it out (and still might), because even though I > think this is the right way to do it, it's cumbersome and you kind of have > tolook at it and think about things for a while. The equivalent is > `File.open(csv_name) { |file| MembersFromCSV.populate file }` but it's kind > of obnoxious that you have to create a superfluous block that does nothing > but forward its arguments to the real target when you could pass the real > target instead of the block if there were a bit better support for this sort > of thing. I had a strong enough reaction to this that I started responding evne before I knew what I wanted instead. Yes, it's somewhat obnoxious that you have to create a superfluous block to forward the argument on. It's less obnoxious to take the method and use #to_proc (via the &), and it's partially syntax that's a problem there, or at least that it looks odd because we're not used to it. But I couldn't think what would be better. I'd like to see something like `File.open csv_name, MembersFromCSV.method(:populate)`, but that could have its own problems. You know, I'm not at all a fan of stabby proc, and maybe more so now that the arrow could be used here. Something like `File.open csv_name, -> MembersFromCSV.method(:populate)` has some merit as far as looks go. Maybe? Am I crazy? Actually, I think I'm crazy. Just get used to & and #to_proc. -- -yossef