4

Emacsには、括弧(または任意の括弧)で区切られた式間でカーソルを移動するコマンドがあります。つまり、forward-sexp、backward-sexp、forward-list、backward-listです。Lispや他のコードでは、それらは同じように動作するので、コメントや引用符の中で最後のものが機能しないことを除いて、*-sexpと*-listの間に違いは見られません。

sexpコマンドとlistコマンドの機能の違いは何ですか?いつどちらを使用する必要がありますか?

念のため、up-listコマンドとdown-listコマンドを理解していますが、これらはトピックとは無関係です。

4

2 に答える 2

5

リストはS式の一例であるため、S式を操作する関数はすべてリストで機能する必要があります(ただし、リスト以外のS式もあるため、必ずしもその逆ではありません)。

elispマニュアルには次のように書かれています。

評価を目的としたLispオブジェクトは、「フォーム」または「式」(1)と呼ばれます。フォームが単なるテキストではなくデータオブジェクトであるという事実は、Lispのような言語と典型的なプログラミング言語の根本的な違いの1つです。どのオブジェクトでも評価できますが、実際には、数字、記号、リスト、および文字列のみが非常に頻繁に評価されます。

----------脚注----------

(1)「S式」または「sexp」と呼ばれることもありますが、このマニュアルでは通常、この用語を使用しません。

C-hig (elisp) Intro Eval RET

于 2012-06-10T10:19:55.373 に答える
5

すべてのS式がリストであるとは限りません。たとえば、変数は明らかにリストではありませんが、S式です。

次の例を考えてみましょう。

foo (bar)

行の先頭にポイントを配置するとforward-sexp、ポイントは「foo」の末尾にforward-list移動し、ポイントは「(bar)」の末尾に移動します

于 2012-06-11T00:35:58.590 に答える