On Mon, Oct 13, 2008 at 1:02 AM, Robert Klemme
<shortcutter / googlemail.com> wrote:
> 2008/10/12 David A. Black <dblack / rubypal.com>:
>> On Mon, 13 Oct 2008, Phlip wrote:
>
>>> Ruby has no procedures, only methods. All methods have a hidden 'self'
>>> variable linking them to an object.
>>
>> I think you missed the "(Proc)" in the question. The question is about
>> Proc objects (which I think it's reasonable to refer to as procedures,
>> though typically people don't) in comparison with methods.
>
> IMHO it makes sense to not refer to Procs as "procedures" because they
> actually are _closures_.  This is a significant difference.

For the original poster, here's a quick illustration:

$ cat test.rb
  a = 42

  def foo
	puts a
  end

  bar = Proc.new { puts a }

  puts "calling bar"
  bar.call

  puts "calling foo"
  foo

$ ruby test.rb
calling bar
42
calling foo
test.rb:4:in `foo': undefined local variable or method `a' for
main:Object (NameError)
	from test.rb:13