Я хотел бы сделать что-то вроде этогоКак заменить значение переменной внутри конс ячейки в ракетке
(cons '(someword,string->symbol somevarname) (restoflist))
но somevarname никогда не заменяется его значением.
Я думал, что это возможно?
Я хотел бы сделать что-то вроде этогоКак заменить значение переменной внутри конс ячейки в ракетке
(cons '(someword,string->symbol somevarname) (restoflist))
но somevarname никогда не заменяется его значением.
Я думал, что это возможно?
Это, но поскольку вы цитировали выражение, содержащее string->symbol
, оно никогда не оценивалось. Я попытаюсь показать правильный способ получить то, что вы хотите, но неясно, что это такое.
Основываясь на ваш комментарий (и не обращая внимания на запятую), кажется, что вы хотите:
(cons (list 'someword (string->symbol "somevarname")) restoflist)
Quote делает буквенные списки. Чтобы динамически создавать список во время выполнения, вы также можете использовать quasiquote и unquote. В вашем случае, это выглядит как следующий (предположим, что somevarname
либо локально или глобально связанных):
(cons `(someword ,(string->symbol somevarname)) (restoflist))
это не работает для меня (он не оценивает somevarname), если я не вижу чего-то – user35202
, вы правильно положили [\ '] вместо [']? и somevarname должен быть связан 'let' или' define'. следующее выражение отлично работает: (let ((somevarname «foo»)) (cons '(someord, (string-> symbol somevarname)) (restoflist))) –
Да, вы правы. спасибо – user35202
Я хотел бы создать список, где первая ячейка (цветок, символ значения переменной) и добавить его к (1 2 3) говорят произвести ((цветок, символ переменной величины) 1 2 3). – user35202
@ user35202 Непонятно, почему у вас есть запятая. Вы буквально хотите запятую в своем выходе? –
@AlexisKing Да. Я хочу, чтобы мой окончательный список выглядел как '((SUN, blue) 2 3 4). – user35202