2011-10-06 5 views
2

필자는 여러 가지 Lisps (적어도 Common Lisp 및 Emacs Lisp)에서 두 개 이상의 함수가 후행 숫자를 제외하고 동일한 이름을 가진 예를 많이 발견했습니다. 예를 들어, Emacs Lisp는 eval-last-sexpeval-last-sexp-1입니다. printprin1도 있습니다. 이것은 일반적인 관행 인 것처럼 보이지만, 프로그래밍에 대해 배운 첫 번째 것들 중 하나는 함수에 독특하고 기술적 인 이름을 부여하는 것입니다. 이 관행은 어디에서 왔습니까?많은리스 프가 "foo", "foo-1", "foo-2"등과 같은 함수 이름을 갖는 이유는 무엇입니까?

+5

60 년대. –

+0

흠. 필자는 오래 전에 충분히 설명적인 함수 이름에 필요한 추가 바이트가 실제로 중요했을 수도 있다고 생각합니까? –

+0

물론입니다. 게다가, 생각은 오늘날보다 더 "야생의 서쪽"이었습니다. –

답변

2

이 1 (일반적으로, "하나") 의미 론적 의미있는 시간의 대부분 :

  • 이 형태로 모든 매크로를 확장하려고 macroexpand, 그리고 macroexpand-1에만 최상위 매크로를 확장
  • prin1의 경우뿐만 아니라 더 복잡하지만 (last 마지막 단점 셀을 반환으로) 그냥 무작위가 아닌리스트의 마지막 요소를 반환하는 일반적인 (비표준) 유틸리티 last1, 거기에 1 추가 : print, princprin1 (또한 pprint). 자세한 내용은 Hyperspec을 참조하십시오.
관련 문제