2015-02-10 2 views

ответ

0

Это, но поскольку вы цитировали выражение, содержащее string->symbol, оно никогда не оценивалось. Я попытаюсь показать правильный способ получить то, что вы хотите, но неясно, что это такое.

Основываясь на ваш комментарий (и не обращая внимания на запятую), кажется, что вы хотите:

(cons (list 'someword (string->symbol "somevarname")) restoflist) 
+0

Я хотел бы создать список, где первая ячейка (цветок, символ значения переменной) и добавить его к (1 2 3) говорят произвести ((цветок, символ переменной величины) 1 2 3). – user35202

+1

@ user35202 Непонятно, почему у вас есть запятая. Вы буквально хотите запятую в своем выходе? –

+0

@AlexisKing Да. Я хочу, чтобы мой окончательный список выглядел как '((SUN, blue) 2 3 4). – user35202

1

Quote делает буквенные списки. Чтобы динамически создавать список во время выполнения, вы также можете использовать quasiquote и unquote. В вашем случае, это выглядит как следующий (предположим, что somevarname либо локально или глобально связанных):

 
(cons `(someword ,(string->symbol somevarname)) (restoflist)) 
+0

это не работает для меня (он не оценивает somevarname), если я не вижу чего-то – user35202

+0

, вы правильно положили [\ '] вместо [']? и somevarname должен быть связан 'let' или' define'. следующее выражение отлично работает: (let ((somevarname «foo»)) (cons '(someord, (string-> symbol somevarname)) (restoflist))) –

+0

Да, вы правы. спасибо – user35202

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