Я знаю, что (begin expr1 expr2 ...)
оценит все выражения и вернет последнее оцененное.
Я обнаружил, что в Chez Scheme разрешено использовать begin
без таких выражений: (begin)
. Я использую Chez Scheme как часть учебы. Когда я пишу в консоли (begin)
, он не отправляет синтаксическую ошибку, он просто ничего не отображает, как будто я получаю void
.
Мой вопрос: что тогда будет возвращено?
Я думал, что это объект void, который можно получить, запустив (void)
. Однако, когда я проверил это, я понял, что это не так.
Я изучаю Chez Scheme как часть курса компилятора, который я изучаю, и мне нужно реализовать часть компилятора, которая может обрабатывать специальное слово begin
. Поэтому мне нужно знать, почему это вообще возможно и что возвращает эта функция.
РЕДАКТИРОВАТЬ:
Я добавляю эту ссылку по этой теме. Я не смог полностью понять ответ. Кроме того, он не упомянул тип возврата.