OS X에 가장 적합한 Scheme 또는 LISP 구현은 무엇입니까?


86

잃어버린 Lisp 개발 기술을 복구하는 데 사용할 수있는 Scheme 또는 LISP 버전을 찾고 있습니다. 일부 웹 기능은 좋지만 필수는 아닙니다.

나는 Plt와 MIT 체계를 살펴 보았고, 둘 다 꽤 좋아 보이지만 Plt는 더 많은 기능이있는 것 같습니다. Lisp 구현도 살펴 보았지만 모두 비용이 많이 드는 것 같습니다.

저는 무료 / 저렴한 구현을 선호합니다. 이것은 정말 가끔 취미 프로그래밍 일 가능성이 있기 때문입니다. 어떤 권장 사항이 있습니까?


6
PLT Scheme이 이름을 Racket으로 변경했습니다.
soegaard

강력한 관련 질문 : stackoverflow.com/questions/2485859
pnkfelix

2
왜이 질문이 닫히지 않았고 이와 같은 거의 모든 질문이 닫히지 않았나요?
Erik Kaplun 2014

답변:


71

나는 라켓과 함께 갈 것입니다. SBCL만큼 빠르지는 않을 수 있지만 훌륭한 라이브러리와 문서뿐만 아니라 Scheme 프로그램을 즉시 개발하고 실행할 수 있도록 설계된 통합 환경이 있습니다. Racket의 IDE 인 DrRacket에 대해 제가 정말 좋아하는 것은 여러분이 할 필요가없는 것입니다. Emacs를 배울 필요도없고 SLIME을 배울 필요도 없습니다. 세 번째 사냥에 대해 걱정할 필요가 없습니다. Racket을위한 거의 모든 라이브러리가 패키지 에서 찾을 수 있으므로 파티 라이브러리 . 대체로 학습 곡선을 실제로 줄이고 실제 작업 인 훌륭한 코드 작성에 집중할 수 있습니다.

또한 Racket 기반 웹 사이트를 만들고 싶다면 웹 서버 가 함께 제공됩니다 (현재 제가 살펴보고있는).


1
저는 몇 주 전에 PLT를 다소 무작위로 선택했으며 지금까지 제 선택에 매우 만족합니다. 당신이 말했듯이, 많은 라이브러리와 문서, 몇 가지 유용한 도구.
Slartibartfast

고마워, 음, 아무도. 저는 속도보다 도구와 문서에 더 중점을두고 있으므로 PLT를 사용합니다.
Mark Brittingham

1
확실한 것. DrScheme은 교육을 염두에두고 만들어졌으며 약간의 장점 (사용 및 문서화)이 있지만 단점도 있습니다. HtDP ( htdp.org ) 를 거치지 않는 한 교육 언어를 무시하고 모든 것에 모듈을 사용하는 것이 가장 좋습니다.
Kyle Cronin

이제 Racket으로 명명 된 것 외에도 이제 대부분의 사용 사례에서 Planet보다 선호 되는 새로운 패키지 시스템패키지 카탈로그 가 있습니다.
Jack

22

나는 이것으로 꽤 많은 실험을했다.

Clozure Common Lisp (née Open MCL)가 가장 빠릅니다. 인텔 Mac Mini의 다음 경쟁 제품보다 25-30 % 빠릅니다.

MIT Scheme 은 Mac에서 아주 잘 작동합니다. 결국 내가 직접 컴파일했다고 생각하지만 그 사이트에는 바이너리가 있습니다. PLT Scheme도 훌륭하며 Mac 세계에 좀 더 잘 통합 될 수 있습니다. (PLT Scheme은 이제 Racket으로 알려져 있지만 변경 후 실험하지 않았습니다.)


2
내가 시도한 거의 모든 것; 일반적으로 목록 조작이 많고 loop매크로를 많이 사용했습니다 .
Charlie Martin

1
CCL이 32 비트 Intel에서 실행되지 않는 것 같으므로 내 Mac Mini가 약간 오래되었습니다.
David Thornley

16

저는 Clojure, SBCL, Clozure CL의 열렬한 팬입니다. 그들은 모두 환상적이지만 Lisping 찹을 새로 고치기 만하면 과도합니다. 그들은 모두 터무니없는 양의 정보 사냥, 메일 링리스트 검색, 패키지 설치, irc 숨어있는 등을 요구합니다.

Dr Scheme은 그냥 설치하고 실행합니다. 저는 4 년 반 전에 Dr Scheme을 사용하여 SICP의 처음 3 장을 마쳤습니다. Scheme 평가자 자체를 정의하는 것보다 더 심오한 것은 없습니다. 일단 당신이 그것에 대해 머리를 돌리면 당신은 산업적 강인한 형제들에 대해 훨씬 더 많은 인내심을 갖게 될 것입니다.


3
실제로 Ubuntu-SBCL-SLIME-stumpwm 설정에는 다른 것이 필요하지 않았습니다. 우선, Practical Common Lisp와 CLHS 만 있으면됩니다.
Svante

15

Scheme의 경우 DrRacket 은 굉장합니다 ( Racket에 포함됨 ).

Common Lisp의 경우 Ready Lisp 는 훌륭합니다. SBCL, Aquamacs 및 Slime가 즉시 작동하는 단일 dmg.

웹 사이트에서 :

Ready Lisp는 Aquamacs, SBCL 및 SLIME를 포함하여 특히 Mac OS X 용으로 널리 사용되는 여러 Common Lisp 패키지를 결합한 것입니다. 다운로드가 완료되면 두 번 클릭 할 수있는 단일 애플리케이션 번들이 제공되며 완전히 구성된 Common Lisp REPL에서 자신을 찾을 수 있습니다.

번거 로움을 최소화하면서 Common Lisp의 아름다움을 시험 해보고 싶은 OS X 사용자에게 이상적입니다. 또한 교사가 Mac 학생들에게 집으로 가져갈 수있는 무료의 완전한 Common Lisp 환경을 제공하는 데 사용할 수도 있습니다. 요구 사항

현재 Ready Lisp 버전은 20090127이며 Mac OS X 10.5 (Leopard)가 필요합니다.

여기에는 다음 구성 요소 소프트웨어 버전이 포함됩니다.

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
LOCAL-TIME  0.9.3
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16


5

"Lisp"를 정의하는 방법에 따라 Clojure 가 계산서에 적합 할 수 있습니다. OS X에서 잘 실행됩니다 (JVM이 실행되는 모든 곳에서 실행됩니다). 웹 기능이 있으며 무료입니다.

또한 새롭고 신선하고 사용하기 재미 있다는 이점이 있습니다. 취미 프로그래밍에 이상적 일 수 있습니다. 웹 앱이나 GUI 앱을 작성하는 것은 쉽습니다 (Java의 Swing 또는 Qt 사용).


4

나는 그것을 직접 사용하지 않았지만 Steel Bank Common Lisp 는 reddit에서 호평을 받았습니다. 오픈 소스이며 무료이므로 일부 취미 프로그램에 적합한 가격입니다.

과거에는 Macbook Pro에서 GNU Common Lisp를 실행했습니다.


4

Scheme을 찾고 있다면 방금 출시 된 JazzScheme을 살펴볼 수 있습니다 .


4

Racket은 Scheme 초보자 (또는 Scheme을 사용하는 프로그래밍 초보자 또는 HtDP를 통해 작업하는 프로그래밍 초보자)를위한 가장 멋진 IDE 중 하나를 제공하기 때문에 신규 사용자에게 Racket을 권장합니다.

http://racket-lang.org/

자체적으로 수정하거나 소스 코드를 읽기 위해 작은 Scheme 시스템에 더 관심이있는 사람들을위한 또 다른 옵션은 Larceny Scheme입니다. 이는 JIT 컴파일러 인 Twobit 자체가 전체적으로 Scheme에서 구현 되었기 때문입니다.

http://www.larcenists.org/


업데이트 : 또한 Chez Scheme은 최근에 오픈 소스되었습니다.

https://github.com/cisco/ChezScheme

(Larceny만큼 "작은"것은 아니지만 매우 공격적인 최적화 컴파일러를 가지고 있습니다.)


웹 사이트에서는 네이티브 컴파일러, to-C 컴파일러 및 CLR 구현 만 언급하는 것 같습니다. JIT는 어디에 있습니까?
Erik Kaplun 2014

네이티브 컴파일러 JIT입니다.
pnkfelix

(즉, 'load'또는 REPL을 통해 x86 기계 코드로 공급하는 모든 Scheme 표현식을 동적으로 컴파일합니다. 여기서 JIT는 "just in time"을위한 것입니다. Java 및 JVM과 관련이 없습니다. JIT가 의미한다고 생각했습니다)
pnkfelix 2014

나는 그것이 자바와 관련이 있다고 생각하지 않았다. 홈 페이지에 "고유 기계 코드로 직접 컴파일"이라고 표시 되어있을뿐 JIT 컴파일 VM / 인터프리터가 일반적으로 설명되는 방식이 아닙니다.
Erik Kaplun 2014

1
귀하의 질문에 답하기 위해 현재 Larceny에서 독립 실행 형 바이너리를 얻을 수는 없습니다. Scheme 소스를로드 한 다음 힙 (컴파일 된 코드 포함)을 힙 이미지로 직렬화 할 수 있지만 그래도 힙 파일과 런타임 바이너리를 별도의 파일로 다시 배포해야합니다. 두 가지를 하나의 이진 이미지로 더 쉽게 병합 할 수 있도록 노력했지만 결코 뛰어 들지 않았습니다.
pnkfelix


2

취미 프로그래밍 인 경우 LispWorks는 매우 강력하고 정교한 무료 개인 버전을 제공합니다. 가장 큰 문제는 몇 시간의 실행 시간 제한입니다. 따라서 오래 실행되는 서버를 작성하지는 않지만 유용한 도구가 아니라는 의미는 아닙니다.

CLISP는 대부분의 모든 작업에서 실행되며 실제로는 스레드를 수행하지 않습니다. (실제 서버를 작성하려는 경우 중요하지만 PHP와 Perl이 보여준 것처럼 Apache + [insert language]는 매우 실행 가능한 플랫폼입니다.)



2

나는 Chicken 이 Scheme에서 잘 작동하고 homebrew를 통해 사용할 수 있음을 발견했습니다 .

brew install chicken

대부분의 SICP 코드는 약간의 수정으로 작동합니다.


1

나는 최근 나 자신에게 같은 질문을하고있다. OS X에서 DrScheme을 사용하면 모든 플랫폼에 대한 Scheme 배포의 첫 번째 선택이 될 것입니다. 매우 멋진 IDE, 디버깅 기능 및 훌륭한 라이브러리 / 프레임 워크 세트 ( 'Mac에서도 작동하는 매우 멋진 GUI 툴킷 포함';-))

그러나 저는 이제 Common Lisp에 대해 비슷하게 편안한 환경을 찾고 있습니다. CCL (OpenMCL) 대 SBCL로 귀결되었습니다. SBCL이 인기있는 선택 인 것 같지만 OS X에서는 스레딩을 지원하지 않는다고 읽었습니다. (정말 문제입니까?). 반면 Clozure CL은 네이티브 스레드, obcj-bridge 등에 대한 우수한 지원을 자랑합니다.

나는 CCL이 약간 이상하다고 생각하지만 잠시 동안 그것을 고수 할 것입니다. 그것은 여전히 ​​통합을위한 논리적 선택처럼 보입니다.

저는 Emacs 23 (-with-ns를 사용하여 소스에서 빌드)과 Slime를 환경으로 사용하며 이것은 저에게 잘 맞습니다. :-)


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