From: Robert Klemme Date: 2010-05-30T18:35:05+09:00 Subject: Re: Inject Loop Syntax On 29.05.2010 21:47, Intransition wrote: > I wonder if any other languages have any sort of "multiplicative > operation" operator. I was thinking about this today b/c sometimes one > has to use a block where it would read better if it could be avoided. > For example: > > [:a, :b, :c].each do |x| > define_method("#{x}?") do > instance_variable_get("@#{x}") > end > end > > I completely made this up off the top of my head, so ignore what it > actually does. The point is rather it would be cool if the loop could > described without encasing the code, something like: > > define_method("#{x}?") do<-(x)[:a, :b, :c] This can never work because the string is evaluated before the method call so you would be defining the same method over and over again (if x is actually defined in the surrounding scope). > instance_variable_get("@#{x}") > end > > It is kind of like HERE documents, but applied to code. Of course I am > not sure about the syntax either. I don't see a solution that is better than the explicit loop you presented initially. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/