Minero Aoki <aamine / loveruby.net> wrote: > > [ruby-dev:28217] ANDCALL operator > > Nobuyoshi Nakada suggested a new operator `&?' (this notation is temporary) > which evaluates left-hand-side expression, and if it is true then call > right-hand-side method. For example: > > if a[1] and a[1].strip.empty? > || > if a[1] &? strip.empty? > > h["key"] and h["key"].dispatch > || > h["key"] &? dispatch > > The motivation of this operator is to avoid duplication of expression. > > Takaaki Tateishi proposed another idea, Object#nil? with block > (again, this name is temporary). > > a[1].nil? {|str| str.strip.empty? } > h["key"].nil? {|h| h.dispatch } > > This issue is still open. Syntactically, a method might look better than an operator: a[1].if?.strip.empty? a[1].maybe.strip.empty? a[1].and.strip.empty? martin