Array.each

what follows are just testing

x = ‘(1…8).to_a.each_group {|x,y,z| p “x = #{x}; y =
#{y.inspect}; z =
#{z.inspect}”}’

Why did you include “to_a”? Enumerable works on iterators
without having to convert them to an explicit array first.
For example, you could have a file with a million lines and
process it three lines at a time using

lol :-))
pls forgive me. As a nuby, I thought (1…8) was just a range, so I
converted it to array first. I’m still thinking/seeing things narrowly.
Thank you for pointing me to enumerables & iterators.

File.open(“/name/of/file”).each_group {|l1,l2,l3| puts
“<#{l1}:#{l2}>#{l3}”}

If you did “to_a” it would have to read in the whole file
into RAM first.

very good point and very helpful indeed.

Regards,

Brian.

kind regards -botp

···

Brian Candler [mailto:B.Candler@pobox.com] wrote: