From: Erwin Abbott Date: 2007-06-10T15:53:45+09:00 Subject: Passing block to Proc#call I'd like to do something like: x = lambda do |*args| if args.size == 5 # call another block yield *args.map{|x| x.gsub(/es$/, '') } end end x.call(*%w[cats dogs ones twos threes]) do |*words| puts words.last # output: thre end But x.call(..) { block } raises LocalJumpError: no block given. I'm not sure how to pass a block because it seems #call doesn't pass it on. Sorry if this is a common question, but I'm having a hard time searching for help because "passing block to lamda call" appears in every page about the basics of closures. I see lamda {|&block| ... } is added in ruby 1.9, but I'd like to be compatible with 1.8 too.