В Emacs Lisp, если foo
является символом, то 'foo
и #'foo
полностью эквивалентны. Последняя форма (с #'
) предпочтительна, когда foo
является функцией, так как она документирует тот факт, что она предназначена для того, чтобы быть вызванной.
Таким образом, ваши две формы полностью эквивалентны, и тот, который с #'
предпочтительным.
Редактировать : как указал Малабарба, это не совсем так: #'
символы будут заставлять байт-компилятор выдавать предупреждение, если функция не определена.
(Обратите внимание, что это не относится к лямбда-формам, для которых обычный '
метод запрещает байт-компилятору компилировать лямбда-формы, как описано в другом месте . Отметим далее, что это также не обязательно имеет место в других диалектах Лисп, например, в Common Lisp #'foo
выполняет раннее связывание.)