2010-11-06 2 views
0

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

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

ответ

0

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

4

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

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

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

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

Смежные вопросы