シーケンス


concatenate

Type: Function
Arguments: concatenate RESULT-TYPE &rest SEQUENCES
Package: lisp
File: sequence.l
(詳細不明) 

使用例: 
  (concatenate 'string     "^X-Status[ \t]*:[ \t]*" (car from) "[ \t]*$")

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

copy-seq

Type: Function
Arguments: copy-seq SEQUENCE
Package: lisp
File: builtin.l
SEQUENCEのコピーを作成して返します。元のSEQUENCEとはequalpだがeqではありません。 

  (copy-seq x) == (subseq x 0)

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

count

Type: Function
Arguments: count ITEM SEQUENCE &key :from-end :test :test-not :start :end :key
Package: lisp
File: sequence.l
ITEMとのテストを満足するSEQUENCE中の要素数を返します。結果は非負の整数です。 

  :from-end : 他の関数との互換性のために用意されたもので、結果に影響しません。 
  :test     : テストを行う2項演算子 
  :start    : テストする開始位置
  :end      : テストの終了位置

SeeAlso: count-if
SeeAlso: count-if-not
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

count-if

Type: Function
Arguments: count-if TEST SEQUENCE &key :from-end :start :end :key
Package: lisp
File: sequence.l
TESTを満足するSEQUENCE中の要素数を返します。結果は非負の整数です。 

  :from-end : 他の関数との互換性のために用意されたもので、結果に影響しません。 
  :test     : テストを行う2項演算子 
  :start    : テストする開始位置
  :end      : テストの終了位置

SeeAlso: count
SeeAlso: count-if-not
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

count-if-not

Type: Function
Arguments: count-if-not TEST SEQUENCE &key :from-end :start :end :key
Package: lisp
File: sequence.l
TESTを満足しないSEQUENCE中の要素数を返します。結果は非負の整数です。 

  :from-end : 他の関数との互換性のために用意されたもので、結果に影響しません。 
  :test     : テストを行う2項演算子 
  :start    : テストする開始位置
  :end      : テストの終了位置

SeeAlso: count
SeeAlso: count-if
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

delete

Type: Function
Arguments: delete ITEM SEQUENCE &key :from-end :test :test-not :start :end :count :key
Package: lisp
File: builtin.l
SEQUENCEの中でITEMと一致するものを削除したSEQUENCEを返します。 
元のSEQUENCEは変更されます。元のSEQUENCEを保持したければ、removeを使うこと。 

  :count    : 削除する文字数を制限します。 
  :from-end : :countが指定された場合にのみ意味を持ちます。 
         nil    SEQUENCEの先頭から削除します。 
         t      SEQUENCEの後尾から削除します。 

使用例: 
  ;;; removeとdeleteを使ってみる。 
  (setq foo "abcabcdef")        => "abcabcdef"
  (remove #\b foo)              => "acacdef"
  foo                           => "abcabcdef"
  (delete #\b foo)              => "acacdef"
  foo                           => "acacdef"

SeeAlso: remove
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

delete-if

Type: Function
Arguments: delete-if PREDICATE SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たすものを削除します。 

SeeAlso: remove-if
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

delete-if-not

Type: Function
Arguments: delete-if-not PREDICATE SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たさないものを削除します。 

SeeAlso: remove-if-not
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

elt

Type: Function
Arguments: elt SEQUENCE INDEX
Package: lisp
File: builtin.l
SEQUENCEのINDEX番目の要素を返します。 
INDEXは0を基底とします。なければnilを返します。 

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

every

Type: Function
Arguments: every PREDICATE SEQUENCE &rest MORE-SEQUENCES
Package: lisp
File: sequence.l
SEQUENCEの先頭の要素から順番にPREDICATEを適用していき、PREDICATEが 
nil を返すと、nilをすぐに返します。 
全ての要素がPREDICATEを満たす場合、 t を返します。 

MORE-SEQUNCESが与えられた時、SEQUENCEの中で最も短いものの終わりまで実行されます。 

SeeAlso: some
SeeAlso: notevery
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

fill

Type: Function
Arguments: fill SEQUENCE ITEM &key :start :end
Package: lisp
File: builtin.l
SEQUENCEのそれぞれをITEMに置換えます。元のSEQUENCEは置き換えられます。 

使用例: 
  ;;; シーケンスを作って、変更してみる。 
  (setq foo (make-sequence 'string 8 :initial-element #\a))
  => "aaaaaaaa"
  (fill foo #\b :start 3 :end 4)
  => "aaabaaaa"
  foo
  => "aaabaaaa"

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

find

Type: Function
Arguments: find ITEM SEQUENCE &key :from-end :test :test-not :start :end :key
Package: lisp
File: builtin.l
SEQUENCE の中で ITEM との :test を満たすものがあればそれを返します。なければ
nilを返します。 

使用例: 
  ;;; リストから'aを探してみる。 
  (find 'a '(e c a b))
  => a

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

find-if

Type: Function
Arguments: find-if PREDICATE SEQUENCE &key :from-end :start :end :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たすものがあればそれを返します。なければnilを返します。 

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

find-if-not

Type: Function
Arguments: find-if-not PREDICATE SEQUENCE &key :from-end :start :end :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たさないものがあればそれを返します。なければ
nilを返します。 

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

length

Type: Function
Arguments: length SEQUENCE
Package: lisp
File: builtin.l
sequence(文字列や、リスト、配列)の長さを求めます。 
配列にfill-pointerがある場合は、そこまでの長さになります。 

使用例: 
  (length "abcd")               => 4
  (length (list 1 2 3))         => 3
  (length (make-array 7))       => 7
  (length (make-array 7 :fill-pointer 4))
                                => 4

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

make-sequence

Type: Function
Arguments: make-sequence TYPE SIZE &key :initial-element
Package: lisp
File: sequence.l
要素のタイプが type でサイズが size なシーケンスを作成して返します。 
:initial-element が与えられた場合はそれぞれの項目はそれで初期化されます。 

使用例: 
  ;;; #\aが8文字の文字列を作ってみる 
  (make-sequence 'string 8 :initial-element #\a)
  => "aaaaaaaa"
  (make-sequence 'list 4 :initial-element "abc")
  => (#1="abc" #1# #1# #1#)

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

merge

Type: Function
Arguments: merge RESULT-TYPE SEQUENCE1 SEQUENCE2 PREDICATE &key KEY
Package: lisp
File: sequence.l
SEQUENCE1とSEQUENCE2を併合します。SEQUENCE1とSEQUENCE2は破壊されません。 
PREDICATEによりSEQUENCE1とSEQUENCE2の値を比較し、非nilならば SEQUENCE1の値を 
nil ならば SEQUENCE2の値を順にマージしていきます。 

  RESULT-TYPE : 結果となるシーケンスの型を指定します。 
  PREDICATE   : シーケンス同士を比較する関数を指定します。 
  :key        : 比較対照を取得する関数を指定します。 

例 
  (merge 'list '(1 2 3 5 8) '(2 4 6) #'<) => (1 2 2 3 4 5 6 8)
  (merge 'string "AbCF" "aBcd" #'char-lessp) => "AabBCcdF"

SeeAlso: stable-sort
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

notany

Type: Function
Arguments: not-any PREDICATE SEQUENCE &rest MORE-SEQUENCES
Package: lisp
File: sequence.l
SEQUENCEの先頭の要素から順番にPREDICATEを適用していき、PREDICATEが 
非nilな値を返すと、 nil をすぐに返します。 
PREDICATEを満たす要素が見つからない時は t を返します。 

MORE-SEQUNCESが与えられた時、SEQUENCEの中で最も短いものの終わりまで実行されます。 

SeeAlso: notevery
SeeAlso: some
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

notevery

Type: Function
Arguments: notevery PREDICATE SEQUENCE &rest MORE-SEQUENCES
Package: lisp
File: sequence.l
SEQUENCEの先頭の要素から順番にPREDICATEを適用していき、PREDICATEが 
nil を返すと、t をすぐに返します。 
全ての要素がPREDICATEを満たす場合、 nil を返します。 

MORE-SEQUNCESが与えられた時、SEQUENCEの中で最も短いものの終わりまで実行されます。 

SeeAlso: notany
SeeAlso: every
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

nreverse

Type: Function
Arguments: nreverse SEQUENCE
Package: lisp
File: builtin.l
SEQUENCEを逆順にした新しいSEQUENCEを作成して返します。元のsequenceは破壊 
されます。 

使用例: 
  (setq lst '(a b c))
  => (a b c)
  (nreverse lst)
  => (c b a)
  lst
  => (a)

SeeAlso: reverse
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

nsubstitute

Type: Function
Arguments: nsubstitute NEWITEM OLDITEM SEQUENCE &key :from-end :test :test-not :start :end :count :key
Package: lisp
File: sequence.l
SEQUENCE に対して OLDITEM との :test を満足する要素を NEWITEM に置き換えた列を返します。 
元の SEQUENCE は変更されます。 

  :test     : テストを行う2項演算子 
  :start    : 開始位置。デフォルトは0で非負の整数
  :end      : 終了位置。デフォルトはnilで、nilの場合は列の長さを指定した 
              場合と等しい動作。 
  :count    : 置き換える最大の回数。 
  :from-end : nil ならば先頭から、non-nil で末尾から置換を行う。 :count
              が与えられた時のみ意味を持つ。 

SeeAlso: nsubst
SeeAlso: nsubstitute
SeeAlso: nsubstitute-if
SeeAlso: nsubstitute-if-not
SeeAlso: substitute
SeeAlso: nsbulis
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

nsubstitute-if

Type: Function
Arguments: nsubstitute-if NEWITEM TEST SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: sequence.l
SEQUENCEに対してTESTを満足する要素をNEWITEMに置き換えた列を返します。 
元のSEQUENCEは変更されます。 

  TEST      : テストを行う単項演算子 
  :start    : 開始位置。デフォルトは0で非負の整数
  :end      : 終了位置。デフォルトはnilで、nilの場合は列の長さを指定した 
              場合と等しい動作。 
  :count    : 置き換える最大の回数。 
  :from-end : nil ならば先頭から、 non-nil で末尾から置換を行う。 :count
              が与えられた時のみ意味を持つ。 

SeeAlso: nsubst-if
SeeAlso: nsubstitute
SeeAlso: nsubstitute-if-not
SeeAlso: substitute-if
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

nsubstitute-if-not

Type: Function
Arguments: nsubstitute-if-not NEWITEM TEST SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: sequence.l
SEQUENCEに対してTESTを満足しない要素をNEWITEMに置き換えた列を返します。 
元のSEQUENCEは変更されます。 

  TEST      : テストを行う単項演算子 
  :start    : 開始位置。デフォルトは0で非負の整数
  :end      : 終了位置。デフォルトはnilで、nilの場合は列の長さを指定した 
              場合と等しい動作。 
  :count    : 置き換える最大の回数。 
  :from-end : nil ならば先頭から、 non-nil で末尾から置換を行う。 :count
              が与えられた時のみ意味を持つ。 

SeeAlso: nsubst-if-not
SeeAlso: nsubstitute
SeeAlso: nsubstitute-if
SeeAlso: substitute-if-not
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

position

Type: Function
Arguments: position ITEM SEQUENCE &key :from-end :test :test-not :start :end :key
Package: lisp
File: builtin.l
SEQUENCE の中で ITEM との :test を満たすものがあればそのインデックスを返します。 
なければ nil を返します。 

使用例: 
  ;;; リストの中から'aのインデックスを調べる 
  (position 'a '(e c a b))
  => 2

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

position-if

Type: Function
Arguments: position-if PREDICATE SEQUENCE &key :from-end :start :end :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たすものがあればそのインデックスを返します。 
なければnilを返します。 

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

position-if-not

Type: Function
Arguments: position-if-not PREDICATE SEQUENCE &key :from-end :start :end :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たさないものがあればそのインデックスを返します。 
なければnilを返します。 

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

reduce

Type: Function
Arguments: reduce FUNCTION SEQUENCE &key :from-end :start :end :initial-value
Package: lisp
File: sequence.l
2項演算子であるFUNCTIONで、SEQUENCEに対して畳み込みを行います。 
  
  FUNCTION  : 2項演算子。 
  :from-end : nil なら先頭から、non-nil なら最後の要素から畳み込みを行います。 
  :start    : 畳み込みを行う SEQUENCE の開始インデックスです。デフォルトは 0 です。 
              :from-end が non-nil なら終了インデックスになります。 
  :END      : 畳み込みを行う SEQUENCE の終了インデックスです。デフォルトは nil です。 
              :from-end が non-nil なら開始インデックスになります。 
  :INITIAL-VALUE : non-nil ならばこの値を初期値として使用します。 

 (reduce #'- '(1 2 3)) = (- (- 1 2) 3)
 (reduce #'- '(1 2 3) :initial-value 10) = (- (- (- 10 1) 2) 3)
 (reduce #'- '(1 2 3) :from-end t :initial-value 10) = (- 1 (- 2 (- 3 10)))

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

remove

Type: Function
Arguments: remove ITEM SEQUENCE &key :from-end :test :test-not :start :end :count :key
Package: lisp
File: builtin.l
SEQUENCEの中でITEMと一致するものを削除したSEQUENCEを返します。 
元のSEQUENCEはそのまま。元のSEQUENCEを変更したければ、deleteを使うこと。 

  :count    : 削除する文字数を制限します。 
  :from-end : :countが指定された場合にのみ意味を持ちます。 
         nil    SEQUENCEの先頭から削除します。 
         t      SEQUENCEの後尾から削除します。 

使用例: 
  ;;; removeとdeleteを使ってみる。 
  (setq foo "abcabcdef")        => "abcabcdef"
  (remove #\b foo)              => "acacdef"
  foo                           => "abcabcdef"
  (delete #\b foo)              => "acacdef"
  foo                           => "acacdef"

SeeAlso: delete
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

remove-if

Type: Function
Arguments: remove-if PREDICATE SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たすものを削除したSEQUENCEを返します。 
元のSEQUENCEはそのまま。 

SeeAlso: delete-if
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

remove-if-not

Type: Function
Arguments: remove-if-not PREDICATE SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: builtin.l
SEQUENCEの中でPREDICATEを満たさないものを削除したSEQUENCEを返します。 
元のSEQUENCEはそのままです。 

SeeAlso: delete-if-not
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

replace

Type: Function
Arguments: replace SEQUENCE1 SEQUENCE2 &key :start1 :end1 :start2 :end2
Package: lisp
File: builtin.l
SEQUENCE1 を SEQUENCE2 で置換します。元の SEQUENCE は置き換えられます。 
SEQUENCE1 の :start1-:end1 の位置に、 SEQUENCE2 の :start2-:end2 を挿入
します。 

使用例: 
  (setq foo (make-sequence 'string 8 :initial-element #\a))
  => "aaaaaaaa"
  (setq bar (make-sequence 'string 3 :initial-element #\b))
  => "bbb"
  (replace foo bar)
  => "bbbaaaaa"
  (replace foo bar :start1 4 :end1 5)
  => "bbbabaaa"

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

reverse

Type: Function
Arguments: reverse SEQUENCE
Package: lisp
File: builtin.l
SEQUENCEを逆順にした新しいSEQUENCEを作成して返します。元のsequenceはそのままです。 

SeeAlso: nreverse
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

some

Type: Function
Arguments: some PREDICATE SEQUENCE &rest MORE-SEQUENCES
Package: lisp
File: sequence.l
SEQUENCEの先頭の要素から順番にPREDICATEを適用していき、PREDICATEが 
非nilな値を返すと、その値をSOMEの戻り値としてすぐに終了します。 
PREDICATEを満たす要素が見つからない時は nil を返します。 

MORE-SEQUNCESが与えられた時、SEQUENCEの中で最も短いものの終わりまで実行されます。 

SeeAlso: every
SeeAlso: notany
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

sort

Type: Function
Arguments: sort SEQUENCE PREDICATE &key :key
Package: lisp
SEQUENCE を PREDICATE に従った順番に並び替えたものを返します。元の SEQUENCE
は変更されます。 sort は安定であることは保証されません。安定なソートが必要 
なときは stable-sort を使いましょう。 

  SEQUENCE  : ソートするシーケンスを指定します。 
  PREDICATE : 比較関数を指定します。 
  :key      : 比較対象を取得する関数を指定します。 

使用例: 
  (setq *test-seq* '(("foo") ("bar") ("hoge")))
  => (("foo") ("bar") ("hoge"))
  (setq *test-seq* (sort *test-seq* #'string-lessp :key #'car))
  => (("bar") ("foo") ("hoge"))
  *test-seq*
  => (("bar") ("foo") ("hoge"))
 
  (setq *test-seq* '(("foo") ("bar") ("hoge")))
  => (("foo") ("bar") ("hoge"))
  (sort *test-seq* #'string-lessp :key #'car)
  => (("bar") ("foo") ("hoge"))
  *test-seq*
  => (("foo") ("hoge"))

参考: 
  [xyzzy:06221] (こっそり)バージョンアップのお知らせ
  ・sort のアルゴリズムを quick から merge に変更
  (比較回数が少ない分、merge の方が速いっぽい)。 
  結果、stable-sort と同じになった(が、依存しないように)。 
  従来は *たまたま* (eq list (sort list)) だったが、 
  そうではなくなったので注意すること。 

SeeAlso: stable-sort
Link: [xyzzy:06221]
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

stable-sort

Type: Function
Arguments: stable-sort SEQUENCE PREDICATE &key :key
Package: lisp
File: builtin.l
SEQUENCE を PREDICATE に従った順番に並び替えたものを返します。元の SEQUENCE
は変更されます。 stable-sort は安定なソートを行います。つまり PREDICATE によっ
て同順と見なされる要素間の順序は、ソート前と同じであることが保証されます。 

  SEQUENCE  : ソートするシーケンスを指定します。 
  PREDICATE : 比較関数を指定します。 
  :key      : 比較対象を取得する関数を指定します。 

使用例: 
  (setq *test-seq* '(("foo") ("bar") ("hoge")))
  => (("foo") ("bar") ("hoge"))
  (setq *test-seq* (stable-sort *test-seq* #'string-lessp :key #'car))
  => (("bar") ("foo") ("hoge"))
  *test-seq*
  => (("bar") ("foo") ("hoge"))
 
  (setq *test-seq* '(("foo") ("bar") ("hoge")))
  => (("foo") ("bar") ("hoge"))
  (stable-sort *test-seq* #'string-lessp :key #'car)
  => (("bar") ("foo") ("hoge"))
  *test-seq*
  => (("foo") ("hoge"))

SeeAlso: sort
Link: [xyzzy:06221]
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

subseq

Type: Function
Arguments: subseq SEQUENCE START &optional END
Package: lisp
File: builtin.l
SEQUENCEのSTART番目からENDもしくは最後までの新しいsequenceを返します。 

[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

substitute

Type: Function
Arguments: substitute NEWITEM OLDITEM SEQUENCE &key :from-end :test :test-not :start :end :count :key
Package: lisp
File: sequence.l
SEQUENCE に対して OLDITEM との :test を満足する要素を NEWITEM に置き換え 
た列を返します。元の SEQUENCE は変更されませんが、戻り値と一部を共有する 
かもしれません。 

  :test     : テストを行う2項演算子 
  :start    : 開始位置。デフォルトは0で非負の整数
  :end      : 終了位置。デフォルトはnilで、nilの場合は列の長さを指定した 
              場合と等しい動作。 
  :count    : 置き換える最大の回数。 
  :from-end : nil ならば先頭から、non-nil で末尾から置換を行う。 :count
              が与えられた時のみ意味を持つ。 

SeeAlso: substitute-if
SeeAlso: substitute-if-not
SeeAlso: nsubstitute
SeeAlso: subst
SeeAlso: substitute-string
SeeAlso: sublis
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

substitute-if

Type: Function
Arguments: substitute-if NEWITEM TEST SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: sequence.l
SEQUENCEに対してTESTを満足する要素をNEWITEMに置き換えた列を返します。 
元のSEQUENCEは変更されませんが、戻り値と一部を共有するかもしれません。 

  TEST      : テストを行う単項演算子 
  :start    : 開始位置。デフォルトは0で非負の整数
  :end      : 終了位置。デフォルトはnilで、nilの場合は列の長さを指定した 
              場合と等しい動作。 
  :count    : 置き換える最大の回数。 
  :from-end : nil ならば先頭から、non-nil で末尾から置換を行う。 :count
              が与えられた時のみ意味を持つ。 

SeeAlso: subst-if
SeeAlso: substitute
SeeAlso: substitute-if-not
SeeAlso: nsubstitute-if
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]

substitute-if-not

Type: Function
Arguments: substitute-if-not NEWITEM TEST SEQUENCE &key :from-end :start :end :count :key
Package: lisp
File: sequence.l
SEQUENCEに対してTESTを満足しない要素をNEWITEMに置き換えた列を返します。 
元のSEQUENCEは変更されませんが、戻り値と一部を共有するかもしれません。 

  TEST      : テストを行う単項演算子 
  :start    : 開始位置。デフォルトは0で非負の整数
  :end      : 終了位置。デフォルトはnilで、nilの場合は列の長さを指定した 
              場合と等しい動作。 
  :count    : 置き換える最大の回数。 
  :from-end : nil ならば先頭から、non-nil で末尾から置換を行う。 :count
              が与えられた時のみ意味を持つ。 

SeeAlso: subst-if-not
SeeAlso: substitute
SeeAlso: substitute-if
SeeAlso: nsubstitute-if-not
[ Intro | 目次 | 索引 | 目的別 | シーケンス ]