Digamos que tengo la siguiente matriz:Proporcionar un proc a un método como un bloque
arr = [[5, 1], [2, 7]]
y quiero encontrar el elemento mínimo, comparando el segundo elemento de los elementos. El elemento mínimo será [5, 1]
ya que 1
es menor que 7
. Puedo usar el siguiente código:
arr.min {|a,b| a[1] <=> b[1]}
Para calcular el máximo, puedo hacer lo mismo:
arr.max {|a,b| a[1] <=> b[1]}
Eso da [2, 7]
.
Uso el mismo bloque todo el tiempo. Me gustaría tener ese bloque en alguna parte y proporcionarlo a la función min/max. Esperaba algo como:
blo = lambda {|a,b| a[1] <=> b[1]}
arr.min blo
funcionaría, pero no fue así. ¿Alguna idea sobre cómo puedo hacer esto?
El único que lee la pregunta con cuidado. – Nakilon
Esto es exactamente lo que estaba buscando. Muchas gracias por la respuesta! –
@ Cristóbal quizás debería "aceptar" la respuesta con la que está satisfecho. Indica a otros usuarios que esta pregunta ha sido respondida y aceptada. –