Как включить цитату в список в схеме? - PullRequest
0 голосов
/ 06 ноября 2010

Я пытаюсь составить список в Схеме следующим образом: (список 'quote' a), и я ожидаю, что вывод будет (quote a), но интерпретатор извиняет цитату, а вывод: 'a

Как мне написать код, чтобы получить ожидаемый результат?

Ответы [ 2 ]

4 голосов
/ 06 ноября 2010

Так и должно быть, поскольку выражение 'a является аббревиатурой для списка (quote a), и принтер интерпретатора использует этот сокращенный текст для вывода.Вы должны заметить, что если вы скажете переводчику оценить 'a, он напечатает a без украшений с апострофом.

Если вы попытаетесь удалить части (list 'quote 'a), вы увидитеточно список, который вы ожидали получить:

> (car (list 'quote 'a))
quote
> (cadr (list 'quote 'a))
a

Итак, в итоге, вы получаете ожидаемый результат, но не ожидаемое представление.Если вы действительно требуете, чтобы вы получили в качестве вывода (quote a), то вам нужно заглянуть в документацию вашего интерпретатора, чтобы убедиться, что это поддерживается.Или вам может потребоваться написать собственную процедуру для распечатки списков.

0 голосов
/ 06 ноября 2010

Какую реализацию вы используете. Изменение того, как REPL распечатывает секспы, зависит от вашей реализации схемы и от того, поддерживает ли реализация выписывание секспов в расширенной форме.

...