スライムと劣ったリスププログラムの質問を備えたClojure.contrib

StackOverflow https://stackoverflow.com/questions/4298595

  •  29-09-2019
  •  | 
  •  

質問

Slime 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であることがわかります):

adr@~/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

私の.emacsには、次のことがあります。

(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 Jars(1.2)は '/home/adr/clojure/cloj-1.2'にあります。

I; EmacsのMa Newbieは、いくつかのチュートリアルをフォローしています。しばらくの間、私はEmacsのClojure.Contribライブラリを使用しようとしていましたが、「MX Slime」はClojure.Contribを見つけません。助けてください

編集: :それが役立つなら、今私はMXスライムを使用するときにメッセージがあることを見ました:

(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)

編集2: しかし、ディレクトリで「Lein Swank」を開始した後にMX Slime-Connectを使用した場合、そのようなエラーメッセージはありません(ただし、「MX Slime-Connect」から始めても、REPLにはClojure-Contribライブラリが見つかりません(ただし、 Leiningenによって依存関係としてダウンロードされます))。

役に立ちましたか?

解決 2

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

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

すべてのライブラリはOKであることがわかります(Swank以外のREPLに「MX Slime」を使用するか、Swankサーバーに「MX Slime-Connect」を使用しているかどうか)。だからそれは完全に私の間違いでした(私はこのstackoverflowの答えで私の間違いについてのヒントを見つけました: 実行するとエラーが発生するのはなぜですか( 'clojure.contrib.repl-utilsを使用)?)

他のヒント

この行:

(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ではなく、あなたが設定しているので、一般的なLispです inferior-lisp-program Clojureに、 slime 起動できません swank サーバ。

次のセクションを参照してください Swank-Clojureプロジェクト:

  • スライムとつながる
  • 埋め込み
  • Swank-Clojure.el

あなたが望む機能はおそらくあります 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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top