В списке, показанном в вопросе, автомобиль имеет символ 'when
. Вы можете проверить это, но сначала давайте изменим имя списка на другое, чтобы избежать конфликта имен с помощью встроенной процедуры list
:
(define lst '(when i type I 1 23 4 2))
(symbol? (car lst))
> #t
#t
(true
) в последней строке показывает, что действительно первый элемент является символом. Если вам нужно преобразовать его в строку, просто сделайте это:
(symbol->string (car lst))
> "when"
РЕДАКТИРОВАТЬ:
Отвечая на вопрос в комментариях, это должно сработать:
(define (isvariable? symbol)
(and (symbol? symbol)
(eqv? (string-ref (symbol->string symbol) 0)
#\?)))