Common Lisp과 Emacs Lisp을 배우는 방법




elisp common-lisp (6)

지난 몇 개월 동안 필자는 Emacs를 필자의 주요 개발 환경으로 광범위하게 사용 해왔다. 필자가 Emacs 용으로 자신 만의 작은 것들을 작성하고 그것을 확장하기위한 Emacs Lisp에 대해 배우고 싶다. 개인적인 필요.

지금까지 Common Lisp을 잠시 동안 배우고, 새로운 언어로 놀고, 새로운 언어를 탐구하기를 원했습니다. 제 질문은 어디서부터 시작해야합니까? Emacs Lisp은 나중에 Common Lisp을 더 쉽게 이해하기 위해 필요한 지식을 제공합니까? 나는 기본적으로 한 경로에서 다른 경로로 이동하기로 결정할 때 학습 곡선을 최소화하기 위해 각 경로의 효율성에 관심이 있습니다.


Common Lisp으로 시작하는 것이 좋을 것입니다. Emacs Lisp보다 훨씬 일반적인 목적이기 때문입니다. 일단 Common Lisp에 익숙해지면 Emacs Lisp (아주 간단한 Lisp 방언)을 익히는 데 어려움이 없을 것입니다.

당신은 두 사람의 "더 어려운"언어에서 시작해서 왜 그런 질문을하는 것이 좋을지도 모릅니다. 답은 상당히 간단합니다. Emacs Lisp의 많은 것들은 Emacs에 상당히 묶여 있습니다. 거기서 시작하면 큰 그림의 일부가 누락 될 수 있습니다.

저는 개인적으로 다른 사람들이 이미 추천 한 훌륭한 책 "Practical Common Lisp"로 Lisp을 향한 여정을 시작했습니다. 그것은 내가 Lisp 비전과 아이디어에 매료 되었기 때문에 Common Lisp을 이해하면 Emacs Lisp 코드를 바로 작성하기가 상당히 쉬웠다. 나는 여행이 반대 방향으로 부드러워 질 것인지는 잘 모르겠지만 모든 것이 주관적이고 개인적인 취향의 문제입니다.


Emacs Lisp와 함께 놀고 연습해라. 당신은 즉시 볼 수 있고 관련있는 일을 할 수 있습니다. 동시에 Common Lisp에 대한 책을 읽으십시오. Elisp 설명서.

독서는 상처를주지 않으며 더 많은 배경과 개관을 줄 수 있습니다. 하지만 배우는 방법에 따라 달 라집니다. 독서는 실습을 시작하는 것보다 더 큰 그림을 제공합니다. 필요하지 않거나 원할 때라도 할 수있는 것을 어디에서 알 수 있습니다.


EmacsLisp로 시작하는 것이 좋습니다. EmacsLisp은 이미 설명한 것처럼 즉시 유용 할 것이기 때문입니다.
그리고 언어의 특성을 잘 이해하자마자 eieio 사용할 수 있습니다.

emacswiki 를 인용하자면 An implementation of the CommonLisp object orientation standard (CLOS) in EmacsLisp .

두 세계의 최고 !


나는 당신이 게시하기 전에 그것을 검색했고 "LISP를 배우는 가장 좋은 방법은 무엇입니까?"라는 질문을 보았다고 가정합니다. 및 아마도 "Elisp 학습을위한 팁" . 그 중 하나를 배우는 방법에 대한 두 가지 좋은 출발점입니다.

당신이 뭘하기를 원 하느냐에 따라 먼저 배워야 할 것이 있습니다. 관심있는 프로젝트에 대한 아이디어가 있다면 적절한 혀짤임을 사용하여 해결하십시오. 예를 들어 개발 환경에서 일부 기능을 추가 / 변경하려면 emacs lisp을 사용하십시오. 그렇지 않으면 (편집기와 관련없는 경우), common lisp를 사용하십시오.

나에게있어, 관심있는 프로젝트를 찾고,이를 사용하여 사용할 언어를 안내하는 것이 전부입니다.

그들은 서로 가까워서 하나에 익숙해지면 다른 하나를 똑바로 사용하게됩니다. Emacs lisp에는 도메인 특유의 기능 (버퍼, 영역, 텍스트 속성, 파일, 하위 프로세스 등)이 많이 있으며 일반적인 lisp에는 사용할 다양한 라이브러리가 있습니다.


아마도 두 가지를 동시에 배우십시오.

Common Lisp을 배울 때 Scheme에있는 컴퓨터 프로그램의 구조와 해석에서 연습을 사용했습니다. 이것은 초기에 Scheme과 Common Lisp의 차이점에 노출되었다는 것을 의미했습니다. 비슷하게 CL과 함께 emacs-lisp을 배우는 것은 완벽하게 가능하며 범위가 다르므로 범위 지정을 이해하는 데 도움이 될 수도 있습니다.






common-lisp