Выучил код C, давно; хотел попробовать что-то новое и другое с помощью Scheme. Я пытаюсь сделать процедуру, которая принимает два аргумента и возвращает большую из двух, например.Процедура схемы с двумя аргументами
(define (larger x y)
(if (> x y)
x
(y)))
(larger 1 2)
или
(define larger
(lambda (x y)
(if (> x y)
x (y))))
(larger 1 2)
Я считаю, что оба из них являются эквивалентными, если т.е. х> у, х возврата; else, return y.
Когда я пытаюсь выполнить любое из этих действий, я получаю ошибки, например. -не является функция или ошибки: не может назвать: 2
Я провел несколько часов чтения над SICP и TSPL, но ничего не выпрыгивает (возможно, мне нужно использовать «список» и ссылки два элемента через автомобиля и корд?)
Любая помощь приветствуется. Если я ошибаюсь, пропустил предыдущий ответ на тот же вопрос или, в противном случае, неуместно, мои извинения.
Brilliant! Спасибо! Я подтвердил, что это сработало. Я мог видеть, что 2 рассматривается как функция, но я не мог понять, почему и как. Определенное смещение, исходящее от C. Спасибо, снова. :-) – h34thf