나는 그들이 lisp라고 불리는 동일한 언어 계열의 방언이라는 것을 알고 있지만 정확히 차이점은 무엇입니까? 가능한 경우 구문, 특성, 기능 및 리소스와 같은 주제를 다루는 개요를 제공 할 수 있습니까?
나는 그들이 lisp라고 불리는 동일한 언어 계열의 방언이라는 것을 알고 있지만 정확히 차이점은 무엇입니까? 가능한 경우 구문, 특성, 기능 및 리소스와 같은 주제를 다루는 개요를 제공 할 수 있습니까?
답변:
그들은 모두 공통점이 많습니다.
(function-name arg1 arg2)
Common Lisp의 특징 :
Clojure의 특징 :
[]
및지도 -벡터 및지도의 일반적인 유용성 외에도 일부 사람들은 이것이 일반적으로 더 읽기 쉽게 만드는 혁신이라고 생각합니다.{}
()
계획의 특징 :
위의 사람들은 몇 가지를 놓쳤습니다.
Common Lisp에는 벡터와 해시 테이블도 있습니다. 차이점은 Common Lisp는 벡터에 # ()을 사용하고 해시 테이블에는 구문을 사용하지 않는다는 것입니다. Scheme에는 벡터가 있습니다.
Common Lisp에는 리더 매크로가있어 새로운 대괄호를 사용할 수 있습니다 (Schema의 후손 인 Racket과 마찬가지로).
Scheme과 Clojure는 Common Lisp의 비위생적 인 매크로와 달리 위생적인 매크로를 가지고 있습니다.
모든 언어는 현대적이거나 광범위한 개조 프로젝트가 있습니다. Common Lisp는 지난 5 년 동안 (대부분 Quicklisp 덕분에) 광범위한 라이브러리를 확보했으며 Scheme에는 일부 현대적인 구현 (Racket, Chicken, Chez Scheme 등)이 있으며 Clojure는 비교적 최근에 생성되었습니다.
Common Lisp에는 OO 시스템이 내장되어 있지만 사용했던 다른 OO 시스템과는 상당히 다릅니다. 특히,이 적용되지 않습니다 - 당신은하지 않습니다 이 OO 코드를 작성 할 수 있습니다.
언어마다 디자인 철학이 다소 다릅니다. Scheme은 배우 모델을 이해하기위한 최소한의 방언으로 설계되었습니다. 나중에 교육학에 사용되었습니다. Common Lisp는 생겨난 수많은 Lisp 방언을 통합하도록 설계되었습니다. Clojure는 동시성을 위해 설계되었습니다. 결과적으로 Scheme은 미니멀하고 우아하며 Common Lisp는 강력하고 패러다임에 구애받지 않는 (기능적, OO 등) 함수형 프로그래밍을 선호하는 Clojure라는 명성을 얻었습니다.
Gimp는 Scheme으로 작성되었습니다. :)
사실 일부 사람들이 C ++로 작성 될 것이라고 생각하는 소프트웨어의 할당은 아마도 Lisp 우산 아래에서 수행되었을 것입니다. 무리에서 황금 사과를 선택하기가 어렵습니다. 사실 C ++가 항상 인기있는 것은 아니었고, 업데이트의 역사 때문에 오늘날에만 인기가있는 것 같습니다. 반세기 미만 동안 C ++는 멀티 스레딩도 사용하지 않았고, 파이썬은 오늘날 테스트되지 않은 쓸모없는 버그가있는 글루 코드의 cesspool이되었습니다. 조금 더 빨리 그리고 이제 우리는 기능적 프로그래밍의 증가를보고 있습니다. 나는 적응 부분에 관한 한 Java가 옳다고 생각합니다.
Scheme은 Lisp 언어를 단순화하기 위해 설계되었는데, 그 의도는 실제로 적용되지 않은 것을 제외하고는 유일한 의도였습니다. 나는 Clojure가 JVM에 대한 Scheme을 더 이상 단순화하기 위해 유사한 것을 수행한다고 생각합니다. 사용자 경험을 부풀리기위한 다른 모든 JVM 언어와 마찬가지로 Java 영역에서 상용구 작성을 단순화합니다.