However, he felt it was a bit crazy to do the test every time, given the
large size of the array.
H.
···
-----Original Message-----
From: Wayne Vucenic [mailto:nightphotos@gmail.com]
Sent: Friday, 5 November 2004 12:12
To: ruby-talk ML
Subject: Re: Cleaner way to do this?
How about
[1, 2, 3, 4, 5].each_with_index do |x, i|
if i == 0
print x
else
print ", ",x
end
end
If you have received this e-mail in error, please delete it and notify the sender as soon as possible. The contents of this e-mail may be confidential and the unauthorized use, copying, or dissemination of it and any attachments to it, is prohibited.
Internet communications are not secure and Hyperion does not, therefore, accept legal responsibility for the contents of this message nor for any damage caused by viruses. The views expressed here do not necessarily represent those of Hyperion.
For more information about Hyperion, please visit our Web site at www.hyperion.com
-----Original Message-----
From: Wayne Vucenic [mailto:nightphotos@gmail.com]
Sent: Friday, 5 November 2004 12:12
To: ruby-talk ML
Subject: Re: Cleaner way to do this?
How about
[1, 2, 3, 4, 5].each_with_index do |x, i|
if i == 0
print x
else
print ", ",x
end
end
That's what I initially suggested :-).
However, he felt it was a bit crazy to do the test every time, given the
large size of the array.
how about this?
arr = [1, 2, 3, 4, 5]
first = arr.shift
print arr.inject(first) { | c, i | "#{c.to_s}, #{i.to_s}" }
arr =
2000000.times do |i|
arr << "abcdefghijklmnopqrstuvwxyz"
end
f = File.new( "temp.txt" , "w+" )
t = Time.new
arr.each_with_index do |x,i|
if i==0
f.print x
else
f.print ', ',x
end end
f.close
puts "WRITING 1"
puts "Took: ", (Time.new.to_f - t.to_f).to_s, " seconds"
f = File.new( "temp.txt2" , "w+" )
t = Time.new
process = proc { |e| f.print e }.call( arr[0] )
arr[1...arr.length].each do |e|
f.print ', ',e
end
f.close
puts "WRITING 2"
print "Took: ", (Time.new.to_f- t.to_f).to_s, " seconds"