[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
6.5.1 car , cdr , cons , append , reverse , length |
[ << ] | [ < ] | [上] | [ > ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
car
, cdr
, cons
, append
, reverse
, length
:: 空でない list の先頭要素.
:: 空でない list から先頭要素を取り除いたリスト.
:: list の先頭に obj を付け加えたリスト.
:: list1 と list2 をこの順に 1 つにしたリスト.
:: list を逆順にしたリスト.
:: list の長さ, または vect の長さ.
car()
: 任意, cdr()
, cons()
, append()
, reverse()
: リスト, length()
: 自然数
リスト
任意
car()
は, 空でない list の先頭要素を出力する. 空リストが入力された場合は, 空リストが出力される.
cdr()
は, 空でない list から先頭要素を取り除いたリストを出力する. 空リストが入力された場合は, 空リストが出力される.
cons()
は, list の先頭に obj を付け加えたリストを出力する.
append()
は, list1 の要素と list2 のすべての要素を結合させたリスト [list1 の要素の並び,list2 の要素の並び] を出力する.
reverse()
は, list を逆順にしたリストを出力する.
length()
は, list または vect の長さを出力する. 行列の要素の個数は, size()
を用いる.
cdr()
を n 回適用
した後 car()
を適用することにより可能であるが, 便法として,
ベクトル, 行列などの配列と同様, インデックス [n]
を後ろに
付けることにより取り出すことができる. ただし, システム内部では,
実際にポインタを n 回たどるので, 後ろの要素ほど取り出しに時間がかかる.
cdr()
は新しいセルを生成しないが, append()
は, 実際には
第 1 引数のリストの長さだけの cons()
の繰り返しとなるため,
第 1 引数のリストが長い場合には多くのメモリを消費することになる.
reverse()
に関しても同様である.
[0] L = [[1,2,3],4,[5,6]]; [[1,2,3],4,[5,6]] [1] car(L); [1,2,3] [2] cdr(L); [4,[5,6]] [3] cons(x*y,L); [y*x,[1,2,3],4,[5,6]] [4] append([a,b,c],[d]); [a,b,c,d] [5] reverse([a,b,c,d]); [d,c,b,a] [6] length(L); 3 [7] length(ltov(L)); 3 [8] L[2][0]; 5
[ << ] | [ < ] | [上] | [ > ] | [ >> ] |
この文書は12月 21, 2024にtexi2html 5.0を用いて生成されました。