From: Phrogz Date: 2007-07-11T22:20:42+09:00 Subject: Re: Yield should be renamed call_block On Jul 10, 4:36 pm, "ara.t.howard" wrote: > On Jul 10, 2007, at 3:33 PM, dbl...@wobblini.net wrote: > > Vagueness would be OK, maybe, but the problem is bigger than that: > > it's that "block.yield" just doesn't express what's happening. > > i'm with matz on this one > > block.yield > > reads, to me, simple as > > 'doing my own thing...' > > block.yield 'control to you' Hrm; nope, I'm with David. LET THE POLARIZATION BEGIN! When you write: foo.explode you are saying: "Tell the 'foo' object to 'explode'." Thus, if you write: blk.yield you are saying: "Tell the 'blk' object to 'yield'." ...which, as David pointed out, is backwards. When you want to say "Now yield to the block" the imperative verb has the implicit subject of "self". The extension of this would be: self.yield( blk ) which of course is just: yield( blk ) Of course, in the current situation where there cannot be more than one Blessed block, this can be optimized to infer the blessed block, and we get back to the current: yield blk.call is (IMHO and by the rationale above) sort of in the same boat. You are telling the interpreter to call the block; you are not telling the block to call itself. More sensible, IMHO, would be: blk.run blk.execute because those are verbs that the block should know how to do.