Допустим, у меня есть следующий массив:
arr = [[5, 1], [2, 7]]
, и я хочу найти минимальный элемент, сравнивая второй элемент элементов. Минимальный элемент будет [5, 1]
, поскольку 1
меньше, чем 7
. Я могу использовать следующий код:
arr.min {|a,b| a[1] <=> b[1]}
Для вычисления максимума я могу сделать то же самое:
arr.max {|a,b| a[1] <=> b[1]}
Это дает [2, 7]
.
Я использую один и тот же блок все время. Я хотел бы где-нибудь иметь этот блок и передать его функции min / max. Я надеялся, что что-то вроде:
blo = lambda {|a,b| a[1] <=> b[1]}
arr.min blo
сработает, но это не так. Есть идеи, как это сделать?