Jeff Davis wrote: > >> The only difference is that in the second case the block is anonymous. >> In the first case, it has a name and so you can pass it around if you >> want (e.g. recursively). >> >> >> > That brings up another question: how do you call a function that accepts > a block if all you have is a proc object? Prepend the Proc with a &: def foo() yield end bar = proc { puts 'foo' } foo bar # Fails foo &bar # 'foo' > i.e. what's the difference between the following: > def foo(&p) p.call; end > foo { puts 'foo' } > and: > def foo(&p) p.call; end > p = proc { puts 'foo' } > foo { p.call } > > Are those the same? Is the latter the proper way to pass a proc object > as a block? See above :) > Thanks to all for your help. I'm just getting into Ruby and I really > like it so far (coming from Python/Perl/PHP). > > Regards, > Jeff Davis E