LISPはもう一度私を悩ます...リストの最後の要素の値を取得できないのはなぜですか?私はこれに似た設定のリストがあります:最後の要素のLISP車?
(setq bar '(((1 2) 3 4 5)((6 7) 8 9 10)))
を今、私は4のリターンを得る:
(cdddar bar)
:
(caddar bar)
を用(5)のリターンがありますしかし、私は5を得ることができません:
(cadddar bar)
これはなぜですか? d 5の価値をどうやって得るのですか?
エラー:
; Warning: This function is undefined:
; CADDDAR
Error in KERNEL:%COERCE-TO-FUNCTION: the function CADDDAR is undefined.
[Condition of type UNDEFINED-FUNCTION]
答えは:(car(cdddar lst))....今、なぜこれ!= cadddar、私は分かりません。 – toast
LISP実装の奥深くのどこかに、 (defun cadr(x)...) (defun cdar(x)...) (defun caar(x)...) (defun cddr x)...) などの長さ1〜4の 'a'と 'd'のすべての組み合わせについては、仕様には長さ5のものは含まれていません。 #cdadrファミリの機能には何も特別なものはありません。それらは一意的に解釈されると解析されません。彼らはただの正常な機能です。ギャップを埋めるためにいくつかの新しいものを歓迎するよりも(defun ...) – jtdubs