В Ruby нет ни унарных операторов --
или ++
, ни синтаксиса while
, который вы пытаетесь использовать.Попробуйте вместо этого:
while key > 0 && vals[key] <= vals[key - 1] do key -= 1 end
Как @IgorKapkov предлагает, вы также можете перевернуть его, что более рубиново:
key -= 1 while key > 0 vals[key] <= vals[key - 1]