GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/nth.html ・ emacs-doc.conao3.com

7.4 nth

nthcdr 関数は、リストの CDR を繰り返し取得します。nth 関数は、nthcdr が返す結果の CAR を取得します。そして、リストの N 番目の要素を返します。

したがって、速度向上のためにC言語で定義されていない場合、nthの定義は次のようになります。

(defun nth (n list)
  "Returns the Nth element of LIST.
N counts from zero.  If LIST is not that long, nil is returned."
  (car (nthcdr n list)))

(もともと nth は Emacs Lisp では subr.el で定義されていたが、1980年代に C 言語で定義が書き直された。)

nth 関数は、リストの単一の要素を返します。これは非常に便利です。

なお、要素の番号は1ではなく0から始まる点に注意してください。つまり、リストの最初の要素であるCARが0番目の要素となります。このような0始まりの数え方は、リストの最初の要素が1番であることに慣れている人々(1始まりに慣れている人々)にとって、しばしば違和感の原因となります。

例えば:

(nth 0 '("one" "two" "three"))
    ⇒ "one"

(nth 1 '("one" "two" "three"))
    ⇒ "two"

なお、nthはnthcdrやcdrと同様に元のリストを変更しません。つまり、この関数は非破壊的です。これは、setcarやsetcdrの関数とは対照的です。