Grehom wrote:
> what am I doing wrong? I wanted to sort primarily on count (second
> position in array), then sub-sort alphabetically (first position in
> array)
>
> char_freq = [["c", 2],["b", 5],["a", 2]]
> sorted_freq = char_freq.sort {|a, b| b[1]<=>a[1] || a[0]<=>b[0] }
> sorted_freq.each do |d|
> print d[0]*d[1]
> end
>
> [...]
Generally you need to do conditional evaluation based on higher prio
results. Using "||" or "or" won't help here (dunno what Perl
does here).
You want something like
[...]
hmmm, I don't think he realy *want's* this.
Please don't scare our new perl friends away...
there is a simple solution to that:
I didn't think of using #nonzero? - this clearly resembles the perl
solution most. Although I'd say that I'd probably prefer the sort_by
approach with negated values...