「Cdr」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
 
編集の要約なし
4行目: 4行目:
; 機能
; 機能
: 指定されたリストの先頭の要素以外のすべての要素を含むリストを返す。  
: 指定されたリストの先頭の要素以外のすべての要素を含むリストを返す。  
: CDR = Construct’s DORSAL Reference の略らしい。


; 引数
; 引数
:*  list : リスト
:*  list : リスト


; 戻り値
; 戻り値
15行目: 18行目:


; サンプル
; サンプル
: (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 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))) と同じ