私はEmacsとClojureの両方の初心者ユーザーであり、いくつかの簡単なテキスト処理で作業環境をテストしています。ベクトルに格納されているUTF-8テキストをSlimeREPLで正しく印刷するのに問題があります。
まず、ファイル(トカラ語Bの辞書)の内容をベクトルに読み込みます。
user> (def toch
(with-open [rdr (java.io.BufferedReader.
(java.io.FileReader. "/directory/toch.txt"))]
(vec (line-seq rdr))))
=> #'user/toch
次に、ベクトルから行を取得しようとすると、ガベージが発生します。
user> (toch 44)
=> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
文字列をSlimeREPLに入力して、元の状態に戻すことができます。
user> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
=> " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "
そして、問題なくディスクに印刷できます。
user> (binding [*out* (java.io.FileWriter. "test.txt")]
(prn (toch 44)))
=> nil
[Contents of test.txt: " Examples : /// kektseñe akappi ste ‘the body is an impurity’ (121b5), akappī = BHS aśuciṃ (529a3). "]
また、他のREPL(clj、lein replなど)からのベクトルから行を取得することもできます。問題があるのは、SlimeREPL内のベクトルの内容を調べようとしたときだけです。
何が起きてる?EmacsとSwankの間に誤解はありますか?どうすればこれを修正できますか?