Array disorder in ruby 1.8.6

  • Thread starter Frantisek Havluj
  • Start date
F

Frantisek Havluj

Hello,

I suppose I found a bug in ruby (or behavior that I am unable to
explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
[universal-darwin8.0]

problem is in this method:

def plotresults(results,runset)
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

each iterator just prints the items of the runset array out of order.
however, if I just evaluate the array anywhere in the method, everything
is ok:

def plotresults(results,runset)
runset
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

Not much more to say about that. Can anybody explain to me why Ruby
should behave like that?
 
J

Jano Svitok

Hello,

I suppose I found a bug in ruby (or behavior that I am unable to
explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
[universal-darwin8.0]

problem is in this method:

def plotresults(results,runset)
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

.each iterator just prints the items of the runset array out of order.
however, if I just evaluate the array anywhere in the method, everything
is ok:

def plotresults(results,runset)
runset
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

Not much more to say about that. Can anybody explain to me why Ruby
should behave like that?

One question: is runset really an Array or a Set? Set doesn't keep the order.

Jano
 
D

David A. Black

Hi --

Hello,

I suppose I found a bug in ruby (or behavior that I am unable to
explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
[universal-darwin8.0]

problem is in this method:

def plotresults(results,runset)
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

.each iterator just prints the items of the runset array out of order.
however, if I just evaluate the array anywhere in the method, everything
is ok:

def plotresults(results,runset)
runset
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

Not much more to say about that. Can anybody explain to me why Ruby
should behave like that?

It's impossible to comment without seeing the code where runset is
created.


David

--
Rails training from David A. Black and Ruby Power and Light:
ADVANCING WITH RAILS April 14-17 New York City
INTRO TO RAILS June 9-12 Berlin
ADVANCING WITH RAILS June 16-19 Berlin
See http://www.rubypal.com for details and updates!
 
R

Robert Klemme

2008/4/4 said:
I suppose I found a bug in ruby (or behavior that I am unable to
explain). My version is, exactly, ruby 1.8.6 (2007-03-13 patchlevel 0)
[universal-darwin8.0]

problem is in this method:

def plotresults(results,runset)
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

.each iterator just prints the items of the runset array out of order.

What exactly do you mean by "out of order"? What order? What type is runset?
however, if I just evaluate the array anywhere in the method, everything
is ok:

What do you mean be "evaluate"?
def plotresults(results,runset)
runset
...
runset.each{|k| f.printf("%-*s",ns,k)}
...
end

Not much more to say about that. Can anybody explain to me why Ruby
should behave like that?

You need to say more about that - otherwise we can't say much more about it.

Cheers

robert
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,185
Members
46,736
Latest member
AdolphBig6

Latest Threads

Top