뛰어난 Common Lisp 코드의 예?
저는 응용 프로그램을 작성하는 과정에서 혼란 스러울 수있을만큼 Common Lisp를 충분히 배웠습니다. 저는 Seibel의 Practical Common Lisp를 읽었습니다.
Common Lisp의 관용구 인 Tao를 이해하려면 어떤 라이브러리 나 프로그램을 읽어야합니까?
CL-PPCRE 는 정당한 이유로 종종 좋은 예로 인용됩니다. 실제로 Edi Weitz의 라이브러리 중 어느 것이 든 읽기가 좋지만 CL-PPCRE는 특히 영리하며 유용하고 인상적인 라이브러리입니다. 그 외에도 많은 CL 구현이 대부분 CL로 작성됩니다. 일반적으로 CL에서 구현되는 CL의 일부를 선택하고 다른 구현에서 처리하는 방법을 비교하는 것은 상당히 생산적 일 수 있습니다. 특히, 큰 유용한 매크로 시스템의 가장 좋은 예 중 일부는 표준에서 구현 한 것입니다. Loop는 흥미로운 읽기입니다. 만약 당신이 정말로 야심이 있다면 CLOS의 몇 가지 구현을 비교할 수 있습니다.
특히 관심이있는 컴퓨팅 영역이있는 경우 언급 할 가치가 있으므로 사람들이 이에 맞게 권장 사항을 조정할 수 있습니다.
이 책은 또 다른 책이므로 정확히 찾고있는 것이 아닐 수도 있지만 Peter Norvig의 인공 지능 프로그래밍 패러다임 에는 잘 작성된 작은 Common Lisp 프로그램이 많이 포함되어 있습니다. Practical Common Lisp의 코드처럼 CL에서 프로그래밍하는 방법을 가르치는 데 초점을 맞추고 있기 때문에 특히 처음 몇 장에서는 완벽하게 자연스러운 코드 는 아니지만 여전히 읽을 가치가 있습니다. 또한 Common Lisp를 기반으로 다른 언어를 빌드 할 수있는 방법에 대한 몇 가지 훌륭한 예제가 포함되어 있으며 CL 프로그램의 성능을 향상시키는 방법에 대한 유용한 조언이 있습니다.
다른 권장 사항 (PAIP 및 CL-PPCRE)은 훌륭합니다. 또한 알렉산드리아 의 코드에 익숙해지고 GBBopen 도 살펴볼 것을 제안 합니다.
The Art of the Metaobject Protocol-지금까지 쓰여진 가장 아름다운 코드가 담긴 책입니다.
LISP (Lisp In Small Pieces)는 깔끔한 책입니다. clossette (작은 obect 시스템) 및 일부 컴파일러 항목을 보여줍니다. 의심 할 여지없이, norvig의 책은 굉장합니다.
나는 정말 "빌딩 문제 해결사"도 좋아하지만 코드는 약간 멍청하다. 매개 변수 목록에서 동적 범위 변수를 바인딩하는 데 익숙하지 않습니다. 그러나 그것은 차별 망을 "미리 컴파일"하려는 시도를 통해 훨씬 재미있게 개선되었습니다. 이 책은 Norvig의 코드에 대한 또 다른 접근 방식을 제공합니다. 나는 여전히 Norvigs 코드가 훨씬 "더 깔끔하고 깔끔한"코드라고 생각합니다 (읽고 이해하기 쉬우 며 여전히 창의적 임).
"빌딩 문제 해결사"에는 "아스 피렌 (sp)이 필요할 것입니다. 내가 마침내 rms와 서스 맨의 의존성에 대한 역 추적을"이해 "했을 때 머리에 번개가 치는 것처럼 느껴졌습니다. pdis를 컴파일하는 것도 훌륭했습니다. 훌륭한 것입니다. 모든 것을 기억할 수 있으면 좋겠습니다.
나는 SBCL 코드를 좋아합니다.
내가 제공 할 유일한 것은 프로그램하는 것입니다. 그게 내가 한 일입니다.
두 가지를했습니다. 하나는 내가 익숙한 문제인 단위 테스트 프레임 워크를 다루고 테스트 스위트를 포함하도록 확장했습니다. 매크로 작성에 대한 이해를 얻으려면.
두 번째로 CL에서 기본 개체를 가지고 놀았습니다. 매크로, 클로저, 스타일.
또한 코드에 대한 Lispers의 피드백을받는 것을 잊지 마십시오.
참고 URL : https://stackoverflow.com/questions/2585591/examples-of-excellent-common-lisp-code
'programing tip' 카테고리의 다른 글
Twitter Bootstrap으로 만든 모달에서 Google지도 표시 (0) | 2020.12.06 |
---|---|
OS X에서 Java 8 용 무제한 강도 JCE를 설치하는 방법은 무엇입니까? (0) | 2020.12.06 |
새로운 Backbone.Model () 대 Backbone.Model.extend () (0) | 2020.12.05 |
git : 매달려있는 얼룩 (0) | 2020.12.05 |
Swift Error : 자체 초기 값 내에서 사용되는 변수 (0) | 2020.12.05 |