Скажем, у меня есть следующий массив:
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
будет работать, но это не так. Любая идея о том, как я могу это сделать?