問題タブ [slime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - clojure REPL は、defrecord に加えられた変更を取得しません
私はライニンゲンプロジェクトをセットアップしています。Clojure ソース ファイルの 1 つで、いくつかのレコードを定義しました。私のワークフローは通常、emacs を起動して「lein swank」REPL に接続することです。REPL に接続したら、適切な名前空間に切り替えてファイルを Cc Ck します。これで、REPL とファイル内のコードの操作を開始できます。しかし、そのファイルのレコードに変更を加えて Cc Ck しても、REPL は変更を反映しません。
したがって、現状では、レコードに変更を加える必要があるたびに、lein swank プロセスを停止して再起動し、emacs から再接続する必要があります。これは非常に急速に古くなります。私は何が欠けていますか?Cc Ck の代わりに Cc Cl を試しましたが、うまくいきません。プロジェクトルートの「クラス」ディレクトリを削除しようとしましたが、それもダメです。
洞察や推奨事項をいただければ幸いです。
また、余談ですが、私は常にレコードが定義されている名前空間で作業しています。
編集:私は実際に defrecord のプロトコルの実装を変更しています。それを変更して Cc Ck を使用してコンパイルし、REPL に新しいレコードを作成すると、REPL はまだ古いプロトコル実装を使用しています。
lisp - #+# とは何ですか。とはどういう意味ですか?
ググることはほとんど不可能なので、私の理解は、スライムのソースコードを読んで文脈上の手がかりに限定されています: おそらくそれは Common Lisp のオブジェクトシステムの一部なのでしょうか? 「自分」みたいなもの?
スニペット:
おそらく、これによりググりやすくなるでしょう: ポンド プラス ポンド // ハッシュ プラス ハッシュ記号 // オクトソープ プラス オクトソープ
compilation - スライムで定まりない
を使用するファイルをスライム repl にリロードしようとするたびにDEFCONSTANT
、定数を再バインドすることについて不平を言います。これを行うようにするにはどうすればよいですか、または定数を使用するファイルを再コンパイルするときにスライムを終了させ、下位のLispプロセスをリロードする簡単な方法は何ですか?
lisp - 修飾されたメソッドをインターン解除するにはどうすればよいですか?
開発中に、「initialize-instance :after」メソッドを定義しましたが、これはしばらくすると不要になり、内部で無効なコードを呼び出すため、実際に邪魔になりました。unintern
関数には修飾子の引数がないため、メソッドのシンボル修飾子の組み合わせを「インターン解除」して、slime-restart-inferior-lisp を実行してからプロジェクトを再度ロードする必要がないようにする方法はありますか?開始?
emacs - REPL が clojure.core/doc を var として扱うのはなぜですか?
Clojure 関数を使用してドキュメントを取得しようとしてdoc
いますが、REPL から認識されません (Emacs と SLIME を使用しています)。次のシーケンスは、何が起こっているかを示しています (各行の直後にエラー メッセージが続きます)。
doc
関数を参照して、変数ではなく関数として認識させるにはどうすればよいですか?
補遺、2011 年 6 月 22 日、質問が投稿されてから 9 時間後
@kotarak は最も関連性の高いコメントを作成しました。案の定、次のことが機能しました。
Clojure 1.3 がアクティブであることを確認できました。
しかし、これも紛らわしいものでした。私の Leiningen project.clj は Clojure 1.2 を指定していました!
私自身の経験では、関連するディレクトリの内容を変更した後でも、SLIME ベースの REPL が Java クラスパス値に「ハングアップ」していることに気付きました。解決策は、Emacs と を終了しlein swank
、両方を再入力して再試行することでした。同じことを試してみたところ、次の結果が得られました。
私ができる唯一の結論は、以前の REPL は Clojure 1.3 を使用していたということです。これより前に取り組んだプロジェクトでは Clojure 1.3 のスナップショットが使用されていたので、REPL が何らかの方法で Clojure 1.3 に「ハングアップ」したと推測しています。
問題の解決、学んだ教訓などボーナス ポイントについては、何が起こったのか (Clojure 1.2 と 1.3 の場合) の理由を説明できる人はいますか?
貢献してくれたすべての人に感謝します。
lisp - Non-blocking input in lisp
I have program that runs for long periods of time and I'd like to interrupt it but not with ctrl-c ctrl-c. I also don't want the system to wait for a keystroke every so often. Instead, if I do press a key, I want it to wrap things up and exit. I found listen
and read-char-no-hang
but I can't get it to work right. Here's what I tried to do
Obviously, this is doing less than a sloth on Xanax as far as finding key=-presses. What am I doing wrong?
emacs - スライムモードエラー
ClojureのEmacs/Swank/Pareditへの穏やかなチュートリアルのガイドと情報に従っていました
しかし、elpa を開いて clojure-mode をインストールすると、スライムと paredit が表示されます。emacs を再起動してから Mx slime を使用しようとしましたが、常に no match と表示されます。私は何を間違っていますか?
次に、マーマレードから clojure-mode をインストールしようとしました。/marmalade-repo.org/packages/ ")) my.emacs に。ただし、Symbol の値を変数として使用したマーマレード エラーは void: package-archives です。
私が何を間違っているのか正確にはわかりません.emacs 23.3を使用してwindows7にいます。c:/clojure に clojure をインストールしました。
どんな助けでも感謝します。
vim - vimclojure と SLIMV を一緒に使用するには?
どちらのアドオンにも良い面があり、SLIMV は REPL の方が優れています (vimclojure REPL よりも高速です)。しかし、vimclojure のインデントと構文の色分けは優れています (また、vimclojure の構文の色分けは REPL でも機能します)。そして、vimclojure のインデントの方が優れています。たとえば、これは関数の SLIMV インデントです。
そして、これはvimclojureのものです:
私は両方のプラグインを使用しようとしていますが、それぞれの良い面があります。SLIMV REPL での構文の色分けと、vimclojure のインデントが必要です。どうすればそれを行うことができますか?
emacs - Clojureインポートと:import
インポート用のclojureAPIを読むと、nsマクロの:importがインポートよりも優先されることがわかりますが、swank / slime / emacsを使用してコーディングしている場合、(ns ..)s式をcxceして取得することはできません。 replにデップしますが、(import ...)を使用できます。
インポートよりも:importが優先される理由は何ですか?また、(ns ...)s-exprから.cljファイルからreplにdepsをインポートする高速な方法はありますか?(同じ質問を:useと:refer ..に一般化することができます。ありがとう)