Todd Benson
11/7/2007 3:23:00 AM
On 11/6/07, Raymond O'Connor <nappin713@yahoo.com> wrote:
> When I store the result of the sort, everything is fine:
>
> Correct
> result = [2, 4, 3, 7, 1, 8, 9, 8].sort do |a, b|
> b <=> a
> end
>
> p result #[9, 8, 8, 7, 4, 3, 2, 1]
>
>
>
>
> But when just do a p on the sort, the problem occurs
>
> Incorrect
> p [2, 4, 3, 7, 1, 8, 9, 8].sort do |a, b|
> b <=> a
> end #[1, 2, 3, 4, 7, 8, 8, 9]
May have something with how the parser sees do/end, (), and {}
precedence. Interesting.
p [2, 4, 3, 7, 1, 8, 9, 8].sort do |a, b|
b <=> a
end #[1, 2, 3, 4, 7, 8, 8, 9]
p [2, 4, 3, 7, 1, 8, 9, 8].sort { |a, b|
b <=> a
} #[9, 8, 8, 7, 4, 3, 2, 1]
p( [2, 4, 3, 7, 1, 8, 9, 8].sort do |a, b|
b <=> a
end
) #[9, 8, 8, 7, 4, 3, 2, 1]
You can see the same behavior with...
p [1, 2, 3].map do |i|
i + 1
end #[1, 2, 3]
p [ 1, 2, 3].map { |i|
i + 1
} #[2, 3, 4]
Todd