On 8/25/06, rak rok <rakrok / gmail.com> wrote:
> >  a = 5
> >  a()
>
> This would fail just like a.call() would fail.
>
>    def say
> >      puts "hello"
> >    end
> >
> >    say = proc { puts "goodbye" }
> >
> >    say()   # hello or goodbye?
>
>
> I would say this would be similar to redefining a method, where the latest
> definition takes precedence.

Read up on the difference between a lisp 1 and a lisp 2. (Which is not
intended to be condescending or dismissive; just that reams have been
written on the topic and I see no point in rehashing it imperfectly in
here.) Essentially it boils down to whether functions and variables
share a namespace or not.

martin