in reply to Re: (OT -- ruby) Re: Re: Favorite programming language, other than Perl:
in thread Favorite programming language, other than Perl:

Re passing blocks: thanks. Got that part working.

But about the other, I probably need to clarify a bit. The example in the doc was the following:

def a   print "Function 'a' called\n"   99 end for i in 1..2   if i == 2     print "a=", a, "\n"   else     a = 1     print "a=", a, "\n"   end end
Which prints:
a=1 Function 'a' called a=99
Frankly, I think that's perverse, and object-orientation won't save you. What if, instead of printing, you'd tried to call "a.blah"? Presumably you'd get the same sort of bizarre results.

/s

Replies are listed 'Best First'.
Re: Re: Re: (OT -- ruby) Re: Re: Favorite programming language, other than Perl:
by elusion (Curate) on May 11, 2002 at 13:44 UTC
    Sorry, you missed my point. Maybe some code will help. :-)
    class Foo def a puts "Function 'a' called" end end foo = Foo.new (1..2).each do |i| if i == 2 print "a=", foo.a, "\n" else a = 1 print "a=", foo.a, "\n" end end
    which prints:
    Function 'a' called a=99 Function 'a' called a=99
    You see, functions are meant to belong to a class -- to be methods. Not that you can't declare functions that belong to the main class, but that's not what the design was for. So I guess if you're writing your code in a non-OO way, you could get stuck. But presumably your variable and function names will be better than 'a' :-).

    elusion : http://matt.diephouse.com