LISP를 배우는 가장 좋은 방법은 무엇입니까? [닫은]


167

나는 몇 년 동안 Python, PHP, Java 및 C로 프로그래밍 해 왔으며 방금 Hackers and Painters를 읽었으므로 LISP를 사용 해보고 싶습니다!

나는 내가 아는 것과는 완전히 다르며 쉽지 않다는 것을 이해합니다. 또한 LISP 주변에는 커뮤니티와 개발이 적다고 생각합니다 (잘못되면 수정하십시오). 제 질문은 LISP를 배우는 가장 좋은 방법은 무엇입니까?

나는 책을 사거나 시간을 투자하지 않아도됩니다. 나는 그것을 낭비하고 싶지 않습니다.

"최종"아이디어는 웹 개발에 LISP를 사용하는 것이며, 그렇게 일반적이지 않다는 것을 알고 있습니다. 첫 번째 책이나 튜토리얼을 선택하고 그렇지 않은 것에 많은 시간을 투자하기 전에 학습 계획을 세우는 것이 좋습니다. 가장 좋은 방법이 되십시오!

답변 해 주셔서 감사합니다.

편집 : 나는 Practical Common Lisp를 읽었고 : ... 길고 단단하고 흥미 롭고 Lisp에서 확실히 굴렀습니다. 그래서 내 권장 사항은 작은 구성표를 먼저 읽은 다음 lisp (또는 구성표 또는 다른 방언)가 당신이 찾고있는 곳이 아니라고 결정하면 여전히 재미있을 것입니다. 재귀에 대한 새로운 사고 방식!


공통 리스프 : 대화식 접근 . Stuart Shapiro가 쓴 Old (1992) book. 예전에는 죽은 나무 였지만 최근 몇 년 동안 전자 형태로 제공 되었습니다 .
Kaz

Robert Wilensky의 일반적인 LISPCraft 는 오래되었지만 흥미로운 책입니다. 나는 하드 카피, 1986 년이
카즈

답변:


114

Peter Seibel의 Practical Common Lisp을 읽으십시오 .


2
캠퍼스에서 그 책을 본 것 같아서 ... 지금 당장 가져 가세요!
DFectuoso

2
REPL을 잊지 마십시오! LISP에 대해 배운 것을 사용하지는 않았지만 다른 언어로는 훨씬 더 나은 프로그래머가되었습니다.
Robert K

1
이 책은 AI 수업에서 프로젝트의 LISP를 가르치기 위해 사용했던 책이었습니다.
helloandre

6
DFectuoso이 - 그냥 링크 아니다 에 대한 책이 있습니다 책. 온라인으로 책 읽기
Aaron

2
예, 알고 있지만 모니터에서 읽는 것을 좋아하지 않습니다 ... 어쨌든 나는이 책을 읽기 시작한 대답 coz로 선택했습니다. 난 둘 다 = 0)
DFectuoso

76

내가 가장 좋아하는 것은 Abelson & Sussman 구조 및 컴퓨터 프로그램 해석입니다 . Lisp의 멋지고 깨끗한 방언 인 Scheme을 사용합니다.

좀 더 실용적인 접근 방식을 좋아한다면 웹 디자인을위한 Lisp 프레임 워크를 선택하고 (그런 짐승이 있는지 전혀 모르겠습니다) 뛰어 들어야합니다.


1
Paul Graham에는 arc라는 lisp 웹 프레임 워크가 있습니다.
graywh

15
아크는 프레임 워크가 아니라 자체 Lisp 방언이라고 생각합니다. paulgraham.com/arc.html
michiakig

55

The Little Schemer 를 워밍업으로 시작하고 싶을 수도 있습니다 . 프로덕션 Lisp 프로그램 작성에 대한 실용적인 책은 아니지만 Lisp 에서 생각 하는 방법을 배우는 데 유용한 책 입니다.


그것은 시작하기에 좋고 빠른 독서처럼 보입니다! TY
DFectuoso 2018

5
나는 동의하지 않는 경향이있다. 그렇습니다. 다이빙을하는 것이 Lisp를 배우는 가장 빠른 방법 일 수도 있지만 사람들을 멀리 할 수도 있습니다. PCL은 경험이 많은 프로그램 이 암기하지 않고 첫날부터 Lisp를 사용할 수 있다는 장점이 있습니다.
Aaron

43

MIT는 DIVX 및 MPEG 형식의 전체 LISP 과정을 제공했습니다. 나는 그것을 강력히 추천합니다.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/


3
강의는 교과서, 컴퓨터 프로그램의 구조 및 해석을 기반으로합니다.
graywh

7
DivX 비디오는 훨씬 작지만 MPEG 비디오와 비슷한 품질의 것을 발견했습니다. 대역폭과 디스크 공간을 절약하십시오.
Drew Noakes

2
더 많은 디스크 공간을 절약하려면 링크 로 이동하여 "구조 및 해석"(인용 부호 사용)을 검색하십시오.
Bill Evans at Mariposa

SICP 비디오를 살펴 봅니다. 그들은 어떤 방언을 사용하고 있습니까? 그들은 방언에 대해 언급하지 않고 그냥 'LISP'라고 부릅니다.
priestc

2
@priestc 나는이 질문이 4 년 전에 요청되었다는 것을 알고 있습니다. 그들은 "도식"을 사용하고 있습니다.
dptd

33

80 년대 스타일의 텍스트 게임 작성을 통해 LISP 프로그래밍을 가르치는 'Land of LISP' 라는 책 이 있습니다. 나는 지금 그것을 읽고 있는데, 그것은 매우 잘 쓰여졌으며 너무 좋아하지 않습니다.


23

여기 몇 가지 옵션이 있습니다. 우선, Scheme과 Common Lisp는 (스코프와 같은) 다소 깊은 방식으로 상당히 다릅니다. 당신은 시작 하고 잠시 동안 붙어 하나를 선택해야합니다 . 저는 Common Lisp 팬이지만 vis-vs-EMACS 종교적 질문 중 하나 일 수 있습니다.

Scheme의 경우 Kent Dybvig의 Scheme Programming Language 로 이동 한 다음 SICP로 이동하십시오.

Common Lisp 및 Practical Common Lisp의 경우 David Lamkins의 성공적인 Lisp를 권장 합니다. 성공적인 Lisp는 온라인에서도 무료로 제공 됩니다.

이후 Queinnec의 작은 조각으로Lisp와 AI 서적에서 Norvig의 Lisp를보십시오 .

Marty Hall에는 Johns Hopkins 의 멋진 목록이 있습니다.

업데이트 : 영원히 그것을 고집하지는 않습니다. 두 번에 모두 배우려고하면 혼란 스러울 것입니다.



17

Project Euler 는 새로운 프로그래밍 언어를 가르치는 데 사용할 수있는 작은 크기의 문제의 훌륭한 원천으로 추천 합니다.


1
그래서 예 프로젝트 오일러의 좋은 참가자 allready 임, 내가 LISP를 연습한다이 보내는 시간은 (내가 물건을 몇 가지 작업을 수행하는 방법을 배우면)
DFectuoso

9

Paul Graham의 Ansi Common Lisp는 좋은 책입니다.

나는 그것이 인쇄되지 않았을 것이라고 생각하므로 아마존을 통해 얻는 것이 가장 좋습니다. 대학에서 2 학년을 보냈던 "자연어 처리"수업에 대한 책을 받았습니다. LISP에서 프로그래밍 프로젝트를 작성해야했기 때문에 Lisp를 빨리 배워야했습니다.

이 책은 저에게 많은 도움이되었습니다.


8

문제가 생기면 나는 lisp를 몰랐다. 그래서 상자에 LISP를 다운로드하기로 결정했습니다.

그런 다음 도움이나 설명서없이 Emacs 설치를 발견했습니다.

그런 다음 두 가지 문제가있었습니다.


2
여기서 문제는 누군가가 튜토리얼에 대해 말하지 않았다는 것입니다. Control-H를 눌렀다가 놓은 다음 T를 누르십시오. 그러면 시작하는 데 필요한 모든 것을 제공하는 자습서로 이동합니다. 당신의 나쁜 경험에 대해 들어 죄송합니다.
JasonFruit

7
이전 정규식 농담을 참조하면 +1이지만 그 위에 유용하지 않으면 -1입니다. :-P
Michael H.

7

진지한 학습자 에게는 Norvig의 PAIP 를 추천 합니다. Lisp와 AI를 모두 배울 수있는 훌륭한 자료입니다.


두 번째로,이 책은 실용 커먼 리스프보다 더 훌륭한 영감을주는 훌륭한 책입니다.
Johan Kotlinski

6

버클리는 CS61a 를 팟 캐스트 형식으로 제공 합니다. SICP를 기반으로 한 CS 클래스 소개입니다. MIT가 제공 한 1982 년 비디오보다 최신 버전입니다.


6

저는 지금 Lisp을 통해 일하고 있으며 Lisp를 배우기 위해 "책"을 만났습니다. Rainer Joswig 가 제안한

이 책은 Common Lisp : Symbolic Computation에 대한 부드러운 소개 라고하며 PDF로 다운로드 할 수 있습니다. 저자는 첫 번째 장에서 Lisp에 대한 UML과 같은 접근 방식으로 시작하여 점점 더 많은 Lisp 구문을 소개합니다.

나는 또한 실용적인 리스프를 보았고, 저자는 노련한 프로그래머조차도 필요한 정보를 많이 생각한다고 생각합니다. 이 책은 그렇게하지 않는 것 같습니다 (완전히 완료되지는 않았지만 제안하기에 충분히 유용하다는 것을 알았습니다).

한 가지 더, 당신은 일하기 위해 환경이 필요합니다. 나는 상자 에서 Lisp가 잘 작동 하는 것을 발견 했습니다 . Windows 및 Linux에서 실행되며 eMac을 사용합니다.


5

JVM 방언-Clojure로 LISP에 매료되었습니다. Clojure는 일종의 훌륭한 LISP입니다.

  • 그것은 "간단한 구문"을 가지고 있으며, 덜 마비 될 필요가 없으며, 현명하게 사용 가능한 컬렉션 모음이 있습니다.
  • JVM 기반이므로 아래에 안정적이고 성능이 뛰어난 런타임이 있으며 전체 Java 생태계 (예 : 데이터베이스 드라이버, 빌드 도구, IDE)가 우리의 범위 내에 있습니다.
  • Noir는 훌륭한 웹 프레임 워크이며, Java 웹 및 응용 프로그램 서버에 응용 프로그램을 배포 할 수 있습니다

즉, Clojure는 현재 생산에 사용될 수 있습니다.

자료에 관해서는, 최소한 4 권의 책과 건전한 온라인 자료가 있습니다 :



4

웹 개발의 경우 일반적인 lisp로 작성된 웹 서버 인 hunchentoot를 살펴볼 수 있습니다 .


당신은 ... 웹 지향 LISP 주위의 모든 웹 서버와 프레임 워크를보고는 매우 슬픈 알고 ZERO 디자인 (CSS 또는 인라인 스타일이
DFectuoso

4

"The Little Schemer"에서 연습을 통해 작업하는 것이 재귀적이고 패턴 일치하는 측면을 연마하는 데 실제로 도움이되었으며 XSLT에서의 작업이 훨씬 쉬워졌습니다.


2

프로그래밍 경험을 바탕으로 Symbolic Computation 또는 Practical Common Lisp에 대한 Gentle Introduction을 먼저 권장합니다. 연습을 위해 Windows에서 Allegro CL 8.2 Free Express Edition을 사용합니다. 연습은 많은 재미로 바뀝니다.


1

대답하기 어려운 질문은 ... 나는 그것이 당신의 학습 스타일에 달려 있다고 생각합니다.

나는 대학에서 AI와 Expert Systems 수업에서 LISP를 배웠지 만, 그것이 내가 배우는 방법입니다 ... 나는 훌륭한 책 학습자가 아니며, 누군가가 수업 환경에서 나에게 설명하는 것을 선호합니다.

LISP는 확실히 독특한 언어이며 기존 C, Java, PHP 프로그래밍에 익숙하다면 새로운 사고 방식이 필요합니다.

당신에게 행운을 빕니다!


1

SICP 책을 읽는 것이 실제로 배우는 데 도움이 된다는 것을 알았 습니다. 저는 스틸 뱅크 커먼 리스프 (SBCL)를 사용하여 성공했습니다.

행운을 빕니다


고마워, 나는 오늘 약간의 책을 고르고 내일 매우 일찍 시작하려고한다!
DFectuoso

그러나 SBCL은 Common LISP 용이며이 책은 Scheme에 관한 것입니다. 아직 완전히 읽지는 않았지만 Common LISP를 배우는 데 여전히 큰 도움이 될 수 있다고 생각합니다. Common LISP에서 해당 항목 만 찾으면됩니다.
Zelphir Kaltstahl

1

(와)의 양동이를 잡고 마을로 가십시오 ..


0

나는 다른 언어를 배우는 것과 다른 Lisp에 특별한 것이 있다는 것을 모른다. 당신은 그것을 사용하고 그 기능을 시험해보기 시작하면됩니다.

하나의 옵션은 간단한 프로젝트 를 시도하는 것 입니다.

Lisp 전용의 또 다른 옵션은 정규 작업을 도와주는 Emacs 확장 프로그램을 작성하는 것입니다.


0

이 책들을 순서대로 읽으십시오 : Paul Graham의 Symbolic Computation에 대한 소개, ANSI Common Lisp, Practical Common Lisp로 이동하십시오. 또는 PCL을 통해 작업하는 동안 ACL을 건너 뛰고이를 참조로 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.