From: Nobuyoshi Nakada Date: 2011-11-28T10:59:37+09:00 Subject: [ruby-core:41346] Re: [ruby-trunk - Feature #5663] Combined map/select method Hi, (11/11/28 10:05), Rodrigo Rosenfeld Rosas wrote: >> &expr calls #to_proc method on the result of expr, to achieve a Proc object. achieve a Proc object, and convert it into a block. > Anyway, I still didn't understand why (1..10).grep(&:even?) works, but (1..10).grep(&:even?){|i| i+1} not. The former is equivalent to (1..10).grep {|i| i.even?} You can't pass two or more blocks to one method call. > Actually, I didn't understand your explanation. You said that &expr calls #to_proc on the result of expr. What is the expr on each example? Is there any place I could further read about those differences? expr is :even? symbol literal here. -- Nobu Nakada