기호 앞의 '와 #'의 차이점은 무엇입니까?


22

나는 이맥스를 처음 접했습니다. 일부 구성을 살펴보면 "add-hook"에 두 가지 유형의 명령이 있습니다.

(add-hook 'LaTeX-mode-hook #'LaTeX-math-mode)

(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)

이것은 오랫동안 혼란 스러웠으며 Google에서 "# '"을 검색하는 방법을 모르겠습니다 ...

감사.


2
미안 내 잘못이야. 정답을 찾았습니다 : stackoverflow.com/questions/2701698/…
X.Arthur


2
다른 사이트의 중복은 괜찮습니다. 그러나 여기에는 거의 복제본이 있습니다. emacs.stackexchange.com/q/3595/50
Malabarba

답변:


21

Emacs Lisp에서 if foo가 기호이면 'fooand #'foo는 완전히 같습니다. 후자의 형태 (가있는 #')는 foo함수라고 할 때 유용합니다.

따라서 귀하의 두 가지 형태는 완전히 동일하며 #'선호하는 형태가 있습니다.

편집 : Malabarba가 지적한 바와 같이, 이것은 사실이 아닙니다. #'심볼에서 함수가 정의되지 않으면 바이트 컴파일러가 경고를 발생시킵니다.

(이것은 다른 곳' 에서 문서화 된 것처럼 바이트 컴파일러가 람다 양식을 컴파일하지 못하게하는 람다 양식 의 경우는 아닙니다. Common Lisp는 #'foo초기 바인딩을 수행합니다.)


경고에 대한 권리. 람다에 #'대해서는 컴파일러 가 평소 인용 부호와 달리 람다를 컴파일하도록 지시합니다. 희망적으로 더 명확하게 재구성했습니다.
jch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.