Clojure でチェス ゲームの作業を開始しましたが、名前空間に問題があります。私のファイルの一番上に、私は持っています
(ns chess.core
(:require clojure.contrib.str-utils2))
to-string
また、ゲーム ピースのシンボルを文字列に変換するなど、いくつかの関数も定義します。ただし、コンパイルすると:
core.clj:21:8:
error: java.lang.Exception: Unable to resolve symbol: to-string in this context (core.clj:21)
いくつか実験を行ったところ、自分で定義した関数を初めて呼び出すときにエラーが発生することがわかりました。また、呼び出しをコメントアウトしても、通常はエラーが発生しないことも発見しました。ns
Swankサーバーを再起動することで修正できる場合があります(できない場合もあります)。しばらくの間(ns chess.core)
、同じエラーがスローされたので、コメントアウトしてハッキングを続けました。しかし、今は何かを大文字にする必要があるので、str-utils が必要です。
str-utils について言えば、私は Leiningen を使用しており、project.clj
下に次のものがあります:dependencies
。
[org.clojars.jhowarth/clojure-contrib "1.2.0-RC3"]]
; [clojure.contrib.str-utils2 "1.2.1"]]
上は動作しますが、下は動作しません。
だから、Clojure の名前空間とライブラリがどのように機能するかについて、私は無知なように感じますが、同時に、他の誰もが(ns foo.bar)
正常に使用しているようです。