Я хочу сделать что-то простое и простое, например min(5,10) или Math.max(4,7). Существуют ли функции в этом отношении в Ruby?
Как найти мин/макс с Ruby?
Ответ 1
Ты можешь сделать
[5, 10].min
 или же
[4, 7].max
  Они приходят из модуля Enumerable, поэтому все, что включает Enumerable будет иметь эти методы доступными.
 v2.4 представляет собственные Array#min и Array#max, которые намного быстрее, чем методы Enumerable, потому что они пропускают вызов #each.
РЕДАКТИРОВАТЬ
 @nicholasklick упоминает еще одну опцию,  Enumerable#minmax, но на этот раз возвращает массив [min, max].
[4, 5, 7, 10].minmax
=> [4, 10]
		Ответ 2
Вы можете использовать
[5,10].min 
или
[4,7].max
Это метод для массивов.
Ответ 3
Все эти результаты генерируют мусор в усердной попытке обработать более двух аргументов. Мне было бы интересно посмотреть, как они работают по сравнению с хорошим "ol:
def max (a,b)
  a>b ? a : b
end
который является моим официальным ответом на ваш вопрос.:)
Ответ 4
В дополнение к предоставленным ответам, если вы хотите преобразовать Enumerable # max в метод max, который может вызывать переменное число или аргументы, как в некоторых других языках программирования, вы можете написать:
def max(*values)
 values.max
end
 Выход:
max(7, 1234, 9, -78, 156)
=> 1234
  Это нарушает свойства оператора splat для создания объекта массива, содержащего все предоставленные аргументы, или пустого объекта массива, если аргументы не были предоставлены. В последнем случае метод вернет nil, так как вызов Enumerable # max для пустого объекта массива возвращает nil.
Если вы хотите определить этот метод в модуле Math, это должно помочь:
module Math
 def self.max(*values)
  values.max
 end
end
  Обратите внимание, что Enumerable.max, по крайней мере, в два раза медленнее по сравнению с троичным оператором (?:. См. Ответ Дейва Морса для более простого и быстрого метода.
Ответ 5
Если вам нужно найти max/min хэша, вы можете использовать #max_by или #min_by
people = {'joe' => 21, 'bill' => 35, 'sally' => 24}
people.min_by { |name, age| age } #=> ["joe", 21]
people.max_by { |name, age| age } #=> ["bill", 35]