#scheme #let
#схема #пусть
Вопрос:
(define (rec base height)
(let ((product (* base height))(half 0.5))
(let ((sum (* product half)))
(display "Area is")
(display sum))))
let: expected only one expression after the name-defining sequence, but found one extra part in: (display sum)
У меня ошибка, как указано выше, я не знаю, какая часть идет не так
Ответ №1:
В полной схеме это разрешено. Однако вы, вероятно, используете один из обучающих вариантов Scheme (например, Intermediate Student или Advanced Student), предоставляемых Racket, который запрещает функции с более чем одним выражением.
Я бы сказал, что вы можете обойти это с помощью begin
, но Intermediate Student также не предоставляет begin
(похоже, что Advanced Student, что помогает). Если вы используете Intermediate Student, я думаю, вы просто не предназначены для использования нескольких выражений, и все. 🙂
Ответ №2:
Языки начального и промежуточного уровня для учащихся действительно плохо подходят для программ, использующих ввод-вывод. Если ваш преподаватель задает задачи, которые требуют от вас использования одного из этих языков, а также требуют, чтобы вы что-то распечатали, это было бы несколько неподходящим заданием.
Для протокола, я, конечно, сам допускаю подобные ошибки….