저는 Common Lisp를 배우려는 C ++ 프로그래머입니다. 저는 Land of Lisp와 같은 책을보고 Lisp의 다양한 장점에 대한 수많은 온라인 기사를 읽었습니다. 하지만 조언이 필요합니다.
내가 Common Lisp에 대해 읽은 거의 모든 것은 그것이 얼마나 놀라운 지, 얼마나 빨리 작업을 수행 할 수 있는지, 그리고 30 년 전 현대 프로그래밍 언어의 많은 문제를 어떻게 해결했는지와 관련이 있습니다. 또한 매크로가 얼마나 놀라운 지, 모든 프로그래밍 패러다임 (OO, 기능, 행위자 기반 등)이 Lisp에서 어떻게 사용될 수 있는지, 그리고 목록이 궁극적 인 데이터 구조 인 방법도 있습니다. 기본적으로 Lisp를 연구 언어처럼 취급하고 그것이 얼마나 다르고 혁명적인지 말합니다.
그리고 그 모든 것들은 아마도 사실 일 것입니다. 그러나 문제는 파일을 읽고 그것을 단어로 나누고 그것에 대해 처리하는 것과 같은 실용적인 일을하는 방법을 많이 보지 못했다는 것입니다. 나는 Common Lisp를 배우기 위해 Common Lisp를 배우는 데 관심이 없지만 C ++에서했던 일을 더 빠르고 더 적은 오류로 처리하기 위해서입니다.
그래서 제 질문은 Common Lisp를 사용하여 다음 과 같은 일반적인 프로그래밍 작업을 수행하는 방법을 가르치는 데 초점 을 맞춘 최고의 리소스 (웹 사이트, 책 등) 가 무엇인지입니다.
- 파일 읽는 방법
- 파일을 읽고, 파일의 단어를 바꾸고, 결과를 파일에 다시 쓰는 방법
- 디렉토리 및 기타 파일 시스템 항목의 파일 반복
- SQL db와 상호 작용
- 소켓을 통한 통신 수행
- 웹 서버와 같은 것을위한 스레딩
- GUI 생성
- 바이너리 파일에 대한 작업 수행
- 파서를 작성하십시오 (Lisp의 Lisp에 대한 인터프리터가 아닙니다. 이는 Lisp의 5 줄과 같습니다)
- 운영 체제 (예 : C 또는 C ++로 작성된 항목)와 상호 작용하여 Lisp가 기본적으로 수행 할 수없는 작업을 수행합니다.
- Lisp 확장을 C로 작성하는 방법 (가능합니까?)
- 루아 인터프리터 삽입 (가능합니까?)
또한 그러나 그처럼 리스프의 목록 작업을 사용 할 수있다 등 힙, 스택, 이진 검색 트리로 혀짤배기에서 일반적으로 데이터 구조를 구현하는 방법을 덜 즉시 실제 노트에 car
그리고 cdr
올바른 방법으로. 모르겠어요.
나는 이것들 중 어떤 것도 (목록의 마지막 두 개를 제외하고는) 불가능하거나 사람들이 너무 좋아하지 않을 것이라고 매우 의심합니다. 앞서 읽은 내용은 Lisp로 작성된 실제 소프트웨어를 많이 언급합니다 (Yahoo! 웹 스토어가 떠 오릅니다).
그러나 이전에 ( the? ) 명령형 언어로 프로그래밍 했으므로 실제 응용 프로그램을 작성하기 위해 얻은 새로운 지식을 사용하고 싶습니다. 그렇다면 Lisp로 실용적인 소프트웨어 작성을 배우는 가장 빠른 방법은 무엇일까요?
그건 그렇고, 나는 Peter Seibel의 Practical Common Lisp를 보았지만 TOC로 판단 하면 Lisp를 사용하여 배우고 싶은 것들 중 일부 에 대해서만 다룹니다 .
내가 할 수 있다면 한 가지 더 질문 (두 질문을 하나로 결합하는 경우 죄송합니다), Lisp의 기능 및 물건에 대한 참조를 어디서 찾을 수 있습니까?
그리고 저는 Lisp를 정말 좋아하고 싶습니다.