тип (список автомобилей) в схеме - PullRequest
2 голосов
/ 18 марта 2012

Если я определю список в схеме следующим образом:

(define list '(when i type I 1 23 4 2))

Какой тип вещи (список автомобилей) возвращает?И еще один вопрос: можно ли преобразовать его в строку?

1 Ответ

5 голосов
/ 18 марта 2012

В списке, показанном в вопросе, автомобиль имеет символ '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)
               #\?)))
...