From: Brian Candler Date: 2007-03-17T07:17:03+09:00 Subject: Re: yield On Sat, Mar 17, 2007 at 07:10:26AM +0900, Corey Konrad wrote: > this works fine: > > def printer() > yield "ball" > end > > printer {|word_one| puts word_one} > > > but this does not: > > def printer(arg) > yield arg > end > > printer("ball") > printer {|word| puts word} > > why is that, cant yield be used with arguments? It can. Your second function 'printer' takes one argument plus one block. However in the first case you were calling it without a block, and in the second case you were calling it without an argument. What you need is: printer("ball") {|word| puts word}