В настоящее время я внедряю сетевую среду Scheme для пинков и хихиканья. Во время внедрения анализатора я наткнулся на странность: в некоторых реализациях схемы указано, что цифры числа считываются до тех пор, пока не будет выполнен разделитель, но они также утверждают, что двойная кавычка является допустимым разделителем. Успешно оценивая 123"abc"
, мне кажется странным, но Racket, похоже, делает это, отображая 123
и "abc"
последовательно.Scheme - может ли Double-Quote линять номер?
Смущенный, я загрузил Gimp и перешел в консоль Script-Fu, которая находится под Guile Scheme. Давая ему одно и то же выражение, он жалуется на несвязанное значение; поэтому он пытается разобрать его как символ?
Я попробовал JScheme как «третье мнение». Он также жаловался на неопределенную переменную.
TL; Какое должно быть поведение Схемы?
Побочное примечание: с учетом двух последних в жалобы, я попытался следующие:
(define 123"abc" 10)
123"abc"
Она оценивается как 10
. Я смущен. Должна ли не отмечать знак двойных кавычек, чтобы синтаксический анализатор выдавал вызов, а не назначал символ?
Для справки синтаксис схемы описан в R5RS или R6RS. Я ожидал бы, что 123 «abc» разобратся в число и строку. Но лучше проконсультируйтесь с соответствующими разработчиками. Лучше всего им ответили. Вопрос интересный, но, скорее всего, вы получите ответы. –