2010-11-28 5 views
0

スライムと劣る-lispのプログラム質問とclojure.contrib:私はスライムのREPLから、次の(無clojure.contib関数が見つからない)している

M-X slime 
user=> (:require 'clojure.contrib.string) 
nil 
user=> (doc clojure.contrib.string/blank?) 
java.lang.Exception: Unable to resolve var: clojure.contrib.string/blank? in this context (NO_SOURCE_FILE:10) 

とコンソールからのClojureの起動時に、以下の(しかし、ここではすべてが)OKを発見している:私は、次のしている私の.emacsで

[email protected]~/clojure/cloj-1.2$ java -cp /home/adr/clojure/cloj-1.2/clojure.jar:/home/adr/clojure/cloj-1.2/clojure-contrib.jar -server clojure.main 
user=> (:require 'clojure.contrib.string) 
nil 
user=> (doc clojure.contrib.string/blank?) 
------------------------- 
clojure.contrib.string/blank? 
([s]) 
    True if s is nil, empty, or contains only whitespace. 
nil 

(setq inferior-lisp-program "java -cp /home/adr/clojure/cloj-1.2/clojure.jar:/home/adr/clojure/cloj-1.2/clojure-contrib.jar -server clojure.main") 

私のClojureのjarファイルを(1 .2)は '/home/adr/clojure/cloj-1.2'にあります。

私はEmacsの初心者で、いくつかのチュートリアルを続けてきました。私はしばらくの間、Emacsのclojure.contribライブラリを使用しようとしていましたが、 "M-Xスライム"ではclojure.contribが見つかりませんでした。 、

編集を助けてください:

(progn (load "/home/adr/.emacs.d/elpa/slime-20100404/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.4493" :coding-system "iso-latin-1-unix")) 

Clojure 1.2.0 
user=> java.lang.Exception: Unable to resolve symbol: progn in this context (NO_SOURCE_FILE:1) 

EDIT2:それが役立つならば、今私は、MXのスライムを使用するときにメッセージがあることを見しかし、私は使用している場合は、このようなエラーメッセージはありません(MX slime-connectで始まっても、REPLPLにclojure-contribライブラリはありませんが(依存関係としてleiningenによってダウンロードされていますが))、slime-connectはディレクトリ内の "lein swank"を開始した後に接続します。

答えて

1

私が(原因Clojureのと私の経験不足に)REPLでライブラリを「必要」に間違った方法を使用していたように私には思えます。以下のような構文を使用している場合:

user=> (require 'clojure.contrib.string) 
nil 
user=> (clojure.contrib.string/blank? "asd") 
false 

(「M-Xスライム接続」スワンクサーバの非スワンクREPLは、「M-Xのスライム」を使用した場合、または関係なく)すべてのライブラリには、OKを発見されています。だからそれは完全に私の間違いだった(私はこのstackoverflow答えで私の間違いについてのヒントを見つけた:Why do I get an error when I run (use 'clojure.contrib.repl-utils)?

1

このライン:

(progn (load "/home/adr/.emacs.d/elpa/slime-20100404/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.4493" :coding-system "iso-latin-1-unix")) 

は、Common Lispのではなく、Clojureのですが、Clojureのにinferior-lisp-programを設定するので、slimeswankサーバを起動することはできません。

swank-clojure projectの次のセクションを参照してください:

  • スワンク-clojure.el

を埋め込みSLIME

  • で接続したい機能がswank-clojure.elで、おそらくですが、それはありますもうお勧めしません。

    すでにELPAを使用しているとして:

    add-to-list 'package-archives 
         '("technomancy" . "http://repo.technomancy.us/emacs/") t) 
    
    M-x package-install ;(slime-repl) 
    M-x slime-connect 
    
  • +0

    ありがとう;私はこの行がどこから来るのか分かりません。私の.emacsには何も似ていません。 ELPAを使用してすべてをインストールしました(これが適切かどうかはわかりません)。 – aeter

    +0

    ありがとうございます。私はそれを試みましたが、シンボル 'パッケージアーカイブは無効です。 – aeter

    +0

    ネット上のチュートリアルのいくつかを試してみます。それは私がここで欠けている非常に単純な何かでなければなりません。私に手伝ってくれてありがとう、ありがとう。 – aeter

    関連する問題