2012-10-14 5 views
8

나는 최근 Clojure를 조금 배웠다. 스칼라와 같은 워크 시트와 같은 Clojure 세계에 그런 것이 있습니까? 코드를 저장하고 저장하자마자 바로 평가할 수 있습니까? 아니면 Clojure와 비슷한 해결책이 있을까요?Clojure 워크 시트

저는 이제 lein repl로 작업하고 있으며, 슬프게도 이것이 가장 유용한 도구라고 말할 수 없습니다.

+2

라이트 테이블을 확인해보십시오. 그것은 아직 초기 단계에 있지만 이미 상당히 유용합니다. 추신 : 귀하의 lein repl으로 인한 문제는 무엇입니까? 내가 가진 유일한 문제는 이맥스 (또는 다른 모든 것)에서 nREPL 클라이언트를 실행하여 피할 수있는 구문 강조가 없다는 것입니다. – Cubic

+1

설치 시간이 필요없는 매우 간단한 Clojure 환경 [Clooj] (https://github.com/arthuredelstein/clooj)를 시도하는 것이 좋습니다. Clojure에 Clojure에 기록됨. –

답변

10

일반적으로 Lisp 개발 (특히 Clojure)에서 선호하는 프로그래밍 스타일은 대체로 대칭 프로그래밍 인입니다. 개발자는 항상로드 된 응용 프로그램의 이미지를 유지하고 REPL을 통해 해당 응용 프로그램과 상호 작용합니다. 로드 된 코드를 신속하게 수정하고 REPL에서 변경 사항을 즉시 테스트 할 수 있습니다 (스칼라에서는 쉽지 않습니다 - 수행하려면 JRebel과 같은 것이 필요합니다). 내가

내가 Clojure의에 따라 워크 플로는 ... 스칼라 비교에서 꽤 원시적 인 솔루션을 워크 시트를 찾을 수 :

  1. 내가 이맥스에 nREPL.el를 엽니 다 -이 모든 종속성과 내 lein2 프로젝트를로드 내게
  2. 내가 소스 코드에서 일부 코드를 작성하는 시도 물건을 사용하고 어쩌면 그 후 나는 CX Cz에를 눌러 줄
  3. CMX으로 최고 수준의 양식을 평가하여 (변경된 기능을로드 할 수 REPL을 제공합니다는 REPL로 다시 점프하고
  4. 내가 2

단계로 돌아갑니다에 나는 새 코드를 사용해 기본적으로 Clojure에 REPL은 스칼라 REPL보다 훨씬 더 강력하고 나는 개인적으로 상당히 우수한 고려 스칼라 IDE 워크 시트. 대화식 점진적 프로그래밍 스타일에 익숙해지면 Lisp은 다른 모든 것들이 비교에 의해 이상하게 복잡해지기 시작합니다. Eclipse의 CounterClockWise Clojure 플러그인에 익숙하지 않지만 Emacs의 nREPL.el과 비슷한 기능을 제공한다는 것은 확실합니다.

+0

예 CounterClockWise는 Eclipse에 머물기를 선호하는 사람들을 위해이 작업을 수행합니다. :) –

5

autoexpect plugin for Leiningen을 살펴볼 수 있습니다. 작업 디렉토리에 파일을 저장할 때마다 플러그인은 코드를 컴파일하고 실행합니다. 보너스로, 테스트 역할을 할 수있는 "expect"함수 호출을 평가합니다. 이것은 테스트 주도 개발에 매우 ​​유용하며 다른 대답 (필자가 가지고있는 테스트 케이스의 수에 따라 하나 또는 둘 다를 함께 사용하는 경우가 많다)에서 설명한대로 REPL을 사용하여 좋은 보완책입니다.

autoexpect를 실행하면 JVM 및 Leiningen의 시작 비용으로 인해 "lein test"또는 "lein run"을 반복해서 실행하는 것보다 훨씬 빠릅니다.

3

당신이 찾고있는 소리가 Clojure Koan plugin 인 것 같습니다. 이 워크 시트 스타일의 문제 해결 운동 도구는 편집 내용을 감시하고 작업의 정확성에 대한 즉각적인 피드백을 제공합니다.

실제 개발 워크 플로의 경우 도구 및 대화식 환경 설정에 대한 다른 조언을 두 번째로 들었지만 Clojure를 배우고 있다고 구체적으로 말한 이후로 재미있는 접근 방식이 될 수 있습니다. 재미있는 웹 사이트 4Clojure도 있습니다.

하지만 부드럽고 편리한 개발 환경을 만들고 싶지만 (지금 당장), 지금까지 몇 가지 중요한 도구에 대해서는 언급하지 않았습니다. 한 사람이 Nrepl을 언급했습니다.Emacs를 좋아한다면 slake/swank와 같은 상호 작용 모드가 있습니다.이 모드는 nrepl.el이라는 nrepl을 사용하여 파일을 편집하는 것과 repl을 어지럽히는 것 사이에서 매우 훌륭한 통합을 제공합니다. 마찬가지로 VimClojure이 있으며 IntelliJ (LaClojure) 및 Eclipse (Counterclockwise)에 대한 플러그인도 많이 사용되고 잘 유지 관리되고 있습니다.

누군가가 autoexpect를 언급했습니다. 좋은 TDD 설정을 찾고 있다면 midje을 권하고 싶습니다. leiningen의 2.0 미리보기 릴리스를 사용하는 경우 lazytest 통합이 유동적이어서 몇 가지 문제가 있으며 lazytest 자체가 사용되지 않거나 권장되지 않습니다. 하지만 나는 개인적으로 기대에 미치지 못하는 것을 선호하며,이 문제는 반드시 lein-midje의 2.0 릴리스에서 해결 될 것입니다. non-preview (1.x)와 함께 작동하는 lein-midje의 안정 버전은 lazytest를 사용하여 자동 테스트와 유사한 기능을 제공합니다.

0

아무도 언급하지 않았으므로 요즘은 cursive이 정말 멋지 네요. repl에 내장 된 Emacs와 똑같은 일을 쉽게 할 수 있습니다. 작업 할 네임 스페이스로 이동하고 변경할 때마다 동기화 할 수 있습니다. 정말 일하는 좋은 방법입니다.

관련 문제