「Cdr」の版間の差分
編集の要約なし |
細編集の要約なし |
||
4行目: | 4行目: | ||
; 機能 | ; 機能 | ||
: 指定されたリストの先頭の要素以外のすべての要素を含むリストを返す。 | : 指定されたリストの先頭の要素以外のすべての要素を含むリストを返す。 | ||
: CDR = Construct’s DORSAL Reference の略らしい。 | |||
; 引数 | ; 引数 | ||
:* list : リスト | :* list : リスト | ||
; 戻り値 | ; 戻り値 | ||
15行目: | 18行目: | ||
; サンプル | ; サンプル | ||
<pre class="brush:autolisp;"> | |||
(cdr '(a b c)) | |||
(B C) | |||
; --- | |||
(cdr '((a b) c)) | |||
(C) | |||
; --- | |||
(cdr '()) | |||
nil | |||
; --- | |||
(cdr '(a . b)) | |||
B | |||
; --- | |||
(cdr '(1 . "Text")) | |||
"Text" | |||
; --- | |||
(setq a '("one" "two" "three" "four") | |||
("one" "two" "three" "four") | |||
(setq b (cdr a)) | |||
("TWO" "THREE" "FOUR") | |||
</pre> | |||
---- | ---- |
2013年8月26日 (月) 11:29時点における版
- 構文
- (cdr list)
- 機能
- 指定されたリストの先頭の要素以外のすべての要素を含むリストを返す。
- CDR = Construct’s DORSAL Reference の略らしい。
- 引数
-
- list : リスト
- 戻り値
- list の先頭の要素以外のすべての要素を含むリスト(ただし、下の注を参照)。
- リストが空の場合、cdr 関数は nil を返す。
-
- 注:list 引数がドット ペアの場合、リスト内に含めずに第 2 要素を返す。
- サンプル
(cdr '(a b c)) (B C) ; --- (cdr '((a b) c)) (C) ; --- (cdr '()) nil ; --- (cdr '(a . b)) B ; --- (cdr '(1 . "Text")) "Text" ; --- (setq a '("one" "two" "three" "four") ("one" "two" "three" "four") (setq b (cdr a)) ("TWO" "THREE" "FOUR")
- MEMO
- AutoLISP は、car と cdr の連結を 4 レベルの深さまでサポートする。
- つまり、次の関数が有効。
caaaar cadaar cdaaar cddaar caaadr cadadr cdaadr cddadr caaar cadar cdaar cddar caadar caddar cdadar cdddar caaddr cadddr cdaddr cddddr caadr caddr cdadr cdddr caar cadr cdar cddr
- これらの連結は、car と cdr の呼び出しをネストしたものと同じ。
- 各 a は car の呼び出しを表し、各 d は cdr の呼び出しを表す。
- 例:
- (caar x) は (car (car x)) と同じ
- (cdar x) は (cdr (car x)) と同じ
- (cadar x) は (car (cdr (car x))) と同じ
- (cadr x) は (car (cdr x)) と同じ
- (cddr x) は (cdr (cdr x)) と同じ
- (caddr x) は (car (cdr (cdr x))) と同じ