将方法传递给Ruby中的Proc

在Ruby中,符号可以方便地转换为Proc,例如:

%{john terry fiona}.map(&:capitalize) # -> %{John Terry Fiona} 

有没有办法将方法传递给Proc,以缩短以下代码:

 ["john", "terry", "fiona"].each do |n| assert n.valid_encoding? end 

谢谢。

 %w{john terry fiona}.map(&:valid_encoding?).each(&method(:assert)) 

非传统的方法同样的事情:

 Compose = lambda do |*xs| ph, *ps = xs.map(&:to_proc) lambda do |*ys| r = ph[*ys] ps.each do |p| r = p[r] end r end end ["john", "terry", "fiona"].each(&Compose[:valid_encoding?, method(:assert)])