the array postcodes should be filled with strings starting looking
like
[“AA”,AB",AC"…“BA”,“BB”,“BC” to “ZZ”] 26*26 entries.
i’ve come up with the following to create it,
postcodes = Array.new
create postal codes array
W = String.new()
X = String.new()
(A…Z).each do |W| {
puts W
(A…Z).each do |X| {
postcodes.push("#{W}#{X}")
}
}
puts(postcodes)
this code produces
hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or ‘{’ or ‘(’
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected ‘}’, expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND
what am i doing wrong, is there an easier (rubier) way?
On Tue, May 6, 2008 at 10:40 PM, [email protected] wrote:
}
what am i doing wrong, is there an easier (rubier) way?
(“AA”…“ZZ”).each {|x| p x}
Harry
postcodes = “AA”…“ZZ”.to_a
Farrel
2008/5/6 [email protected]:
[email protected] wrote:
}
what am i doing wrong, is there an easier (rubier) way?
Sorry but there are many errors here: First some code that works:
postcodes = Array.new
(‘A’…‘Z’).each do |x|
(‘A’…‘Z’).each do |y|
postcodes << “#{x}#{y}”
end
end
puts(postcodes)
Note that the A…Z is now ‘A’…‘Z’. This is because A is a reference to
a constant called A which you haven’t defined but ‘A’ is a upper case
letter.
When doing a xxx.each you can do it either way:
(‘A’…‘Z’).each do |x|
puts x
end
or
(‘A’…‘Z’).each {|x|
puts x
}
You seem to be mixing both.
Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.
On May 6, 3:54 pm, Peter H. [email protected] wrote:
create postal codes array
}
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND
end
(‘A’…‘Z’).each do |x|
You seem to be mixing both.
Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.
thanx
I’m having fun with arrays; here’s my version:
((a = (‘A’…‘Z’).to_a) * (b=a.length)).zip(a.collect{|e|
[e]*b}.flatten).collect{|e| e.join}.join("\n")