2

私は SLIME と SBCL で emacs を持っています。そして、emacs が 'FORMAT' をフォーマット文字列 &rest オブジェクトとして定義しているという問題に行き詰まりました。そのため、REPL で (format t "hello") のようなものを評価しようとすると、エラーが発生します: Wrong type argument: stringp 、t

これはオーバーライドされる関数の場合ですか? SBCL で定義された関数を使用するように emacs を作成するにはどうすればよいですか?

かなり単純な初心者の問題だと思いますが、「フォーマット」キーワードをグーグルで検索するのは本当に難しいです:)

4

2 に答える 2

7

Emacs LispCommon Lisp (SBCL はその実装です) は 2 つの異なる言語です。System.out.printlnEmacs Lisp からJava を呼び出す方法を尋ねているようなものです。

Emacs Lisp は、Emacs の動作を拡張およびカスタマイズするために使用されます。

Common Lisp は汎用プログラミング言語であり、いくつかの実装があり、SBCL はその 1 つです。Emacs や Emacs Lisp とは関係ありません (おそらく歴史的および文化的なものを除いて)。

SLIME は、Emacs 内から実行中のCommon LispM-x slimeイメージと通信するためのツールです。最初に;で開始する必要があります。*slime-repl sbcl*SLIME を開始した後、バッファ内で実行中の Common Lisp イメージ (この場合は SBCL) にフォームを送信できます。

Emacs Lispフォーム*scratch*を入力して評価できる名前の別のバッファがあります。これは Common Lisp とは何の関係もないことを覚えておいてください。

しかし、Emacs Lisp に多くの Common Lisp 構造を追加する Emacs Lisp 拡張機能があることに注意する必要がありますが、それはまだ Emacs Lisp です。それについて何か読んでも混乱しないでください。

ええ、最初は混乱するかもしれませんが、心配しないでください。これは一時的なものです。

編集: Common Lisp に興味がある場合は、次の書籍のいずれかまたはすべてを読む必要があることを付け加えておきます。

一方、Emacs 自体の拡張とカスタマイズに興味がある場合は、次の本を読む必要があります。

幸運を。

于 2011-02-02T17:50:14.897 に答える
1

調査の結果、.emacs 構成ファイルの SLIME init スクリプトが正しくないことがわかりました。だから、私がinferior-lispを使っていた間、それはSBCLではありませんでした。問題を説明するリンクは次のとおりです:slime-devel list。だから、私は設定ファイルに変更(setq inferior-lisp-program "/some/path/to/sbcl/executable.exe")しました。(setq inferior-lisp-program "sbcl")そして、それは私を完璧な性質のSBCLに連れて行きました:)

于 2011-02-03T14:20:01.600 に答える