If this is covered elsewhere, please point me in the right direction.

Either why, my question is what exactly is the difference between a
block / closure of the syntax
do |x, y|
    ....
end

versus

{|x, y|
    ....
}

Are these idioms identical in all but their syntax?  Or is there an
underlying difference to them?

This has been bugging me for a while, and I haven't been able to
locate the answer in the docs I've found.

Thanks!

Alex McHale