From: Brian Candler Date: 2008-09-09T21:51:36+09:00 Subject: Re: "Pointer" to an object? (i.e. reflect changes to origina > Both lambda and proc work > as well, incidentally. Actually, from what I've read they're identical > in 1.8 (which is what I'm using), but not in 1.9, Not exactly. * lambda and Proc are different to each other in both ruby1.8 and ruby1.9. Also, they are different in the same way :-) * in ruby1.8, proc {} is a synonym for lambda {} * in ruby1.9, proc {} is a synonym for Proc.new {} So to play it safe, never use proc {} - always use lambda {} or Proc.new {} For a detailled discussion of the differences, see http://innig.net/software/ruby/closures-in-ruby.rb (although I disagree with his rant: these inconsistencies are carefully considered to make Ruby "do the right thing" in various scenarios) If you are using closures in the way discussed in this thread, then I think lambda {} is probably the best choice as you get a true closure which is fully independent of the thread of execution where it was defined. Regards, Brian.