Проблема в том, что ваш код оценивает >
как значение, а не вызывает его как функцию.
(if > x maxValue)
... оценивается как x
, потому что функция >
не является ни nil
, ни ложной, и, следовательно, верна, когда оценивается как логическое значение - и x
находится в положении "если верно", точно так же, как maxValue
находится в позиции "else" в этом if
. Следовательно, текущий отступ (хотя он точно отражает намерение ) немного вводит в заблуждение; do
должен быть за пределами if
, поскольку это происходит независимо от того, что произошло ранее.
Предположительно, вместо этого вы хотите:
(if (> x maxValue)