Я начинаю изучать Схему и хорошо, я пытаюсь реализовать свою собственную функцию max, которая дает максимум двух параметров.Параметр схемы не применим
Я написал функцию, как это: (define (myMax x y) (cond ((> x y) (x)) ((< x y) (y))))
Но каждый раз, когда я пытаюсь называть это (myMax 100 40)
(пример) я получаю ошибку, которая говорит:
The object 100 is not applicable.
Поиск в документации MIT ГНУ -Sheme, они говорят: This type indicates an error in which a program attempted to apply an object that is not a procedure. The object being applied is saved in the datum field, and the arguments being passed to the object are saved as a list in the operands field.
Но что это значит?
Weird вещь, я реализовал очень простую функцию, которая добавляет два числа, и она работает просто отлично, а также функция абсолютного значения, которая отлично работает; может ли это быть условным?
Благодаря
Что должно произойти, когда 'x' равно' y'? Может быть, 'if' является более подходящим. – tom
Вы правы, я попытался игнорировать это, чтобы заставить дело работать. Но почему бы «если» быть более уместным? Я могу просто добавить другое условие; есть ли причина, почему это менее целесообразно? – Fingolfin
У него есть одно условие вместо двух: '(if (> x y) x y)' – tom