Suponha que eu esteja definindo uma var como esta:
(setq var '((:item1 "stringA") (:item2 "stringB")))
(isso funciona)
Agora eu gostaria que "stringA" fosse uma condicional, assim:
(setq var '((:item1 (if (> 6 (string-to-number (format-time-string "%u")))
"stringA"
"stringC"))
(:item2 "stringB") ))
Isso não funciona, provavelmente por causa do operador de aspas (ou função?). Como deveria ser escrito para funcionar?
Nada dentro de uma lista entre aspas é avaliado. Você precisa chamar funções para construir a lista dinamicamente:
ou você pode usar aspas invertidas para especificar as partes da lista que devem ser literais e avaliadas.
Dentro de uma expressão entre aspas invertidas, a vírgula (que se parece com uma aspa invertida) marca uma expressão que deve ser avaliada.