Lisp로 어떻게 시작해야합니까? [닫은]


48

저는 몇 년 동안 프로그래밍을 해왔으며 다양한 Blub 반복 (BASIC, 어셈블러, C, C ++, Visual Basic, Java, Ruby에서 특정 순서의 "Blub-ness"순서로 반복하지 않음)을 진행하면서 배우고 싶습니다. 리스프 그러나 나는 제한된 시간 (가족, 정규직 등)과 현재의 Blub (Java)로 편안한 행복을 가진 많은 intertia를 가지고 있습니다.

그래서 내 질문은 이것이 실제로 Lisp를 배우고 싶은 사람이라면 웹 개발에서 Lisp의 우수성보여주는 좋은 결과를 얻는 초기 단계는 무엇 입니까? 어쩌면 나는 요점을 잃어 버렸지 만 이것이 처음에 Lisp 지식의 적용을 보는 방법입니다.

나는 "D 언어를 사용하고, IDE B를 사용하고, C 페이지의 지시를 따르고, 카운슬러 D를 사용하여 모나드 후 정신 건강에 의문을 제기한다"고 생각합니다. 여기서 사람들이 A, B, C 및 D에 대한 최적의 값 집합으로 간주하는 것을 알고 싶습니다. 또한 Rails가되는 것과는 달리 강력한 언어를 배우는 상대적인 장점에 대한 토론도 있습니다. 전문가.

좀 더 자세히 설명하기 위해 MacOS (또는 Linux VM)에서 개발 중입니다 .Windows 기반 접근 방식은 필요하지 않습니다. 감사합니다.

방금 검색 한 사용자를위한 참고 사항

제안 사항을 탐색 한 후 제안에 대한 피드백을 제공 할 수 있도록이 질문을 잠시 동안 열어 두겠습니다. 탐색 중일 때 추가 할 것이 있다고 생각되면 수행하십시오. 귀하의 의견을 진심으로 환영합니다.

흥미로운 링크

Java 배경에서 Lisp에 온다고 가정하면이 링크 세트를 사용하면 빠르게 시작할 수 있습니다.

  1. Intellij의 La Clojure 플러그인을 사용하여 Lisp 통합 ( videocast )
  2. 웹용 리스프
  3. Practical Common Lisp 의 온라인 버전 (C / O Frank Shearar)
  4. 리스프땅은(+ (+ very quirky) game based) 방법이 있지만 너무 간단합니다
  5. 맥 OS에 Clojure의 숭고한 2를 설치 우수한 시작 가이드
  6. 상기 봐 Clojure의 작업에서 책. 나를 위해 일했다.

1
Paul Graham의 "ANSI Common Lisp"및 "On Lisp"를 읽음.
duros

2
리스프 바위에 (내가 ANSI CL의를 읽을 수 없습니다했습니다)하지만, 같은 인트로 책 리스프에서 실용 커먼 리스프>. 최소한 IMO. (저는 처음에 Lisp를 읽었지만 PCL은 저를 CL로 데려갔습니다.)
Frank Shearar

나는 지금 PCL을 읽는 것을 즐기고 있다고 말해야합니다. 언어의 역사에 관한 훌륭한 각주는 실제로 지역 사회에 대한 느낌을줍니다
Gary Rowe

1
Lisps에 대한 첫 번째 소개는 유명한 컴퓨터 프로그램 구조 및 해석을보고있었습니다. 그런 다음 Java 프로그래머 용 Rich Hickey의 Clojure를 보았습니다. 이 비디오를 좋은 소개로 추천합니다.
WuHo6

답변:


18

이것은 아마도 대부분의 사람들의 권장 사항에 반할 것이지만, 이미 알고 있지 않는 한, Emacs를 시작하지 마십시오. 특히 최신 IDE / 편집기에 익숙한 경우.

나는 경험에서 말하고있다; 나는 Emacs로 시작하려고했지만 언어를 배우고 동시에 편집자는 정말 실망했습니다 (특히 Emacs가 다른 도구와 다르기 때문에). 나는 비교적 간단한 크로스 플랫폼 IDE, 중앙 집중식 패키지 저장소멋진 문서 ( 웹 개발을 특별히 목표로 한 중간 튜토리얼 포함 ) 와 함께 제공되는 PLT Scheme (현재 Racket)으로 시작했습니다 . Lisp를 깨끗하게 잡은 후에 Emacs로 돌아가 실용적 LispXah의 Elisp Guide를 통해 EL / CL을 가져 왔습니다.. 기본적으로, 내가 본 것처럼, Emacs를 효과적으로 사용하려면 먼저 Lisp를 알아야하고 CL / Elisp에 매우 효과적이기 위해서는 Emacs를 알아야합니다. 즉, Scheme을 선택하거나 다른 편집기를 통해 Common Lisp를 먼저 배울 수 있습니다 (LispWorks 개인).

Emacs를 이미 알고 있다면 Elisp가 자연스런 단계입니다 (Elisp를 먼저 알지 못하고 Emacs를 사용하는 방법은 저를 넘어 섭니다).

물론 YMMV는 이것이 내가 찾은 것입니다.

현재 Blub이 Java이기 때문에 Clojure , Armed Bear 또는 Kawa 에서 많은 마일리지를 얻을 수 있습니다. Java 사용자가 아닌 직접 시도하지는 않았지만 Clojure는 특히 내가 알고있는 다른 Lispers에서 강력하게 권장합니다. 현재 VM 및 IDE를 유지하는 기능이 학습 프로세스에 도움이 될 수 있습니다.


내가 시작할 때 이미 이맥스에 약간의 유창함이있었습니다. 이맥스는 학습 곡선이 매우 가파르다!
Frank Shearar

+1 Emacs에 대한 나의 이전 경험이 훌륭하지 않았기 때문에 (Trbjorn이 지적한 것처럼 Lisp를 알고 싶지 않고 Lisp를 내장하지 않아도 하루 종일 직장에서 Lisp 지식을 사용할 수 있음)
게리 로우

3
@ Thorbjørn Ravn Andersen-그렇습니다. 두번. CUA 단축키 (Emacs에서는 기본적으로 꺼져 있음)를 계속 사용하고 있습니다. 최악의 경우 우연히 컷 + 의도 된 사본 ( C-x C-c)으로 편집자를 닫는 것 입니다. 나는 죽음에 이맥스를 사랑하고, 거의 라이브 그것은 지금, 그러나 근육 메모리의 처음에, 당신은 싸우고 년 당신이 말하는 것을 깨닫게 C-s이다 Save,하지 Search및 그 Undo입니다 C-z. 나는 Lisp를 배우려는 의도를 가진 누군가에게 그런 종류의 좌절을 권하지 않습니다. 먼저 언어를 배우고, 당신이 그것을 사랑한다는 것을 깨닫고, 분명한 목표를 염두에두고 손을 싸우십시오.
Inaimathi

1
:) 또한 Ctrl-C를 + Ctrl 키-V는 :) CUA하지 @Inaima은 물론 전력은 가격으로 제공하고, 이맥스 바인딩은 CUA 그래서 IBM을 비난 앞선

1
@Geoffrey van Wyk-PLT는 처음부터 훌륭하지만 잠시 후에는 제한이있어서 베어링이 있으면 CL / Emacs로 전환했습니다. YMMV. langnostic.blogspot.com/2010/09/… 세부 사항에 관심이 있으시면 글쓰기를 한 적이 있습니다. LispWorks에 관한 질문입니다. 나는 그들이 큰 팀 (회사가 도구를 구매하는 곳)이나 컨설턴트 (보통 가격표가 정당화 될만큼 충분한 컨설턴트)를 목표로하고 있다고 믿어야합니다. 그것이 어떻게 작동하는지 확실하지 않지만 내가 선택한 접근법은 아닙니다.
Inaimathi

10

SICP 를 읽음으로써 두 마리의 새를 칠 수 있습니다 . 하나는 LISP를 배우고 있으며 다른 하나는 프로그래밍 방법에 대한 훌륭한 통찰력입니다.


1
링크에 +1-빠른 스캔은 매우 상세하지만 접근 방식에서 다소 건조하다는 것을 보여줍니다. 나는 텍스트를 읽을 때 나오는 "전문가의 목소리"에 대한 열렬한 팬이지만 전반적으로 좋은 참고 자료처럼 보입니다.
게리 로우

10

Conrad Barski 에는 Lisp에서 SPEL 캐스팅 이라는 훌륭한 튜토리얼이 있습니다 (SPEL은 매크로의 약어입니다). 간단한 어드벤처 타입 게임을 만들고 Lisp 매크로로 바로 뛰어 들어갑니다. 그는 또한 다음에서 입수 할 수있는 소개 책을 연구하고 있습니다.

한 번에 한 게임 씩 Lisp를 프로그래밍하는 방법을 배웁니다 .

그리고, 목차에서 :

  • 자신 만의 웹 서버를 만들어 브라우저 기반 게임을 즐기십시오

그러나 이것이 Lisp를 사용하여 웹 개발 (HTML 페이지에서와 같이)에 무엇을 의미하는지 모르겠습니다 . :)

MIT가 Hal Abelson과 Gerald Jay Sussman의 SICP 비디오 강의 전체를 온라인으로 전환했음을 상기시키는 "컴퓨터 프로그램의 구조 및 해석"책을 언급 한 사람이 있습니다 . 당신은 책이 건조한 것을 알았을지 모르지만 강의는 훌륭합니다. Scheme 기반이지만 Lisp에서도 여전히 기본적인 개념을 잘 알고 있습니다. 다운로드 및 시청 가치가 있습니다.


8

이 언어에 대한 기본적인 기본 정보를 얻으려면 Peter Seibel의 Practical Common Lisp를 읽으십시오 . 이 책은 훌륭합니다.

초보자에게는 emacs 및 SLIME 설정이 까다로울 수 있습니다. 여기서 "tricky"의 크기는 OS에 따라 다릅니다. 평소와 같이 Windows는 문제를 해결하지 못했지만 사람들은 어려운 부분을 수행하여 이를 작성했습니다 (SBCL, Emacs, SLIME).

그것이 끝나고 나면 Planet Lisp는 최근 Hunchentoot와 nginx를 설정하는 방법을 설명하는 기사를 참조했습니다 .

OS 별 편집 : MCLIDE 를 시작하는 것이 좋습니다. 나는 그것을 설치했지만 실제로 그것을 사용할 기회가 없었기 때문에 그것에 대해 유용한 것을 말할 수는 없다. 확실히 재미있어 보인다!

편집 : Eclipse에는 Cusp 플러그인도 있습니다.


6

이미 많은 훌륭한 답변을 얻었지만 Lisp을 사용하여 웹 개발에 대해 먼저 배우기를 원한다고 가정하면 몇 가지 아이디어가 더 있습니다.

Clojure 는 프라임 타임 준비가 된 풀 스택 웹 프레임 워크를 실제로 갖춘 최초의 Lisp입니다.

  • Noir 는 Sinatra와 유사하지만 기능이 더 풍부한 라우팅, 템플릿 등을 갖춘 견고한 웹 프레임 워크입니다. 기본적으로 Clojure의 Rack in Ruby에 해당하는 Ring을 사용합니다.
  • Korma 는 Noir와 실제로 잘 어울리는 SQL 추상화 라이브러리입니다.
  • Pinot 은 ClojureScript로 완전히 작성된 클라이언트 측 프레임 워크로서 다음과 같은 이점을 제공합니다.
  • Clojurescript 는 Javascript를 대상으로하는 Clojure 용 컴파일러입니다.

당신이 눈치 채지 못했다면, 나는 단지 전체 웹 스택을 덮었 고 Clojure로 모두 쓰여졌습니다.

Clojure가 Scheme보다 훨씬 나은 기능 세트 / 라이브러리 지원으로 Common Lisp을 시작하기가 조금 더 쉽다는 것을 알았습니다.

Java 배경에서 온다면 JVM에서 실행하는 이점이 추가되어 필요할 때 전체 Java stdlib에 액세스 할 수 있습니다.

사용 가능한 문서는 프레임 워크 자체와 마찬가지로 진행중인 문서입니다. 그러나 여기에는 아주 좋은 튜토리얼이 있습니다.

편집자가하는 한 ... vim에 익숙하다면, SLIMV와 함께 vim을 사용할 수 있습니다. emacs를 좋아한다면 emacs / SLIME은 괜찮습니다. Clojure에 대한 꽤 좋은 Eclipse 및 NetBeans 지원이 있지만, 일반적으로 TextMate를 사용합니다. 좀 더 통합 된 환경을 사용하지 않는 작은 Lisp 마법을 놓치고 있지만, ⌘-Tab을 눌러 내 편집기와 REPL간에 교환 할 수 있습니다. 귀하의 마일리지가 다를 수 있습니다.

책을 빨리 시작하려면 Stuart Halloway와 Aaron Bedra의 Programming Clojure 를 추천 합니다. 두 번째 버전은 PragProg 에서 나왔 으므로 최신 버전입니다.

행복한 Lisping!


당신은 추가 할 수 있습니다 Leiningen
게리 로우

5

다른 주석가 , Inaimathi 는 며칠 전에이 책을 추천했습니다 : The Little Schemer

오늘 그것을 받았으며 수년에 걸쳐 많은 양의 프로그래밍 서적 라이브러리를 가지고있는 사람으로 말할 수 있습니다. 단 하나의 장만 읽었을 수도 있지만이 버전의 하드백 버전이 필요합니다. 그것은 언어에 관한 신성한 지혜의 작은 조각 들인 Tao Te Ching처럼 읽습니다. Scheme이라고 말할 수도 있지만 원래는 "The Little LISPer"라고 불렀습니다. 토론 수준의 언어는 하나의 언어로 가르치기에 충분히 유사합니다.

이 문서는 고급 텍스트가 아니지만 언어의 원칙과 언어의 목적, 언어의 사고 방식을 파악하는 사명을 가지고 있습니다. 나는 그것이 LISP의 훌륭한 출발점이 될 것이라고 믿습니다.

NB. 프로그래머 역량 매트릭스 (Programmer Competency Matrix)는 실제로이 책을 찾아야 할 것들의 최상위 역량에서 언급합니다. (도서 섹션 참조)


4

Lisp 사용을 시작하기에 좋은 곳은 Emacs 편집기 안에 있으며, 거의 모든 것을 재정의하는 데 사용할 수 있습니다. 'e'키가 날짜 시간을 삽입하기를 원하면 작은 Lisp 스 니펫을 작성하여 문자열을 생성하고 e 키에 바인딩하십시오. 끝난.

또한 낮에 일반 편집기를 사용하는 경우 매일 설정에서 배운 내용을 실제로 사용할 수 있습니다.


"배운 내용 사용"조언에 +1 나는 하루 일을위한 Intellij 이사회이지만, 매우 제한된 소프트웨어 환경에서 emacs에 대한 발을 잡을 수 있습니다.
게리 로우

3

Mac에서 개발하는 경우 Clozure CL 을 사용해 볼 수 있습니다 . Emacs 호환 키 스트로크가있는 IDE와 함께 제공되며, Objective C에 대한 브리지가있어 Cocoa 애플리케이션을 작성할 수 있습니다.

또한 Practical Common Lisp를 읽었지만 성공적인 Lisp 도 도움이됩니다.

마지막으로, 귀하의 일부 인내심이 보상됩니다. 생산성과 경미한 승리는 금방 올 수 있지만 큰 승리에는 시간이 걸릴 수 있습니다.


2

내 책상 옆 에 ANSI Common Lisp 사본이 있습니다. 나는 몇 년마다 그것을 집어 들고 몇 장을 훑어 본 다음 몇 가지 연습에 갇히고 우선 순위 목록을 떨어 뜨립니다. 그것은 아마 책보다 나에 대해 더 많이 말해 줄 것입니다. 이 책은 전적으로 유능한 것 같습니다 ...


이 질문에 대한 답변과 의견을 읽으면 더 높은 목표를 향한 추진력을 얻게 될 것입니다. PCL 링크에 균열이 생겼다면 어떻게 생각하는지 알려주세요.
Gary Rowe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.