В Лиспе символ ´
будет заключать в кавычки остальную часть выражения. Это означает, что значение будет выражением в точности так, как оно написано, вызовы функций не оцениваются, переменные не заменяются его значением и т. Д.
Самый простой способ - использовать функцию list
, которая создает список элементов после оценки его аргументов, например:
(completing-read "input: " (list "1" "2" my-defvar))
Конечно, вы также можете использовать синтаксис backquote , как предложено в другом ответе. Это позволяет вам заключать в сложное выражение, но заключать в кавычки (то есть оценивать) его части. Однако в этом простом случае я не думаю, что это правильный инструмент для работы.