[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ベクタはSchemeオブジェクトの単純な一次元配列です。 インデックスを用いて定数時間でその要素にアクセスできます。 一度作成されたベクタはその大きさを変えることはできません。
<vector>
クラスはまた<sequence>
クラスを継承し、
map
やfold
など様々な総称関数を使うことができます。
gauche.collection
- コレクションフレームワーク と
gauche.sequence
- シーケンスフレームワーク を参照して下さい。
数値しか要素に持たないベクタを使う場合、SRFI-4の
単一型ベクタも使えるかもしれません (srfi-4
- 単一型のベクタ参照)。
より多くのベクタに対する操作がsrfi-43
- ベクタライブラリで提供されています。
[R5RS]
objがベクタなら#t
を、そうでなければ#fを返します。
[R5RS] 長さkのベクタを作成して返します。 省略可能な引数fillが与えられていれば、ベクタの各要素はその値で 初期化されます。そうでなければベクタの各要素の値は不定です。
[R5RS] 要素がobj …であるようなベクタを作成して返します。
[R5RS] ベクタvectorの長さを返します。
gauche.collection
モジュールをロードしていれば、
メソッドsize-of
も同じ目的で使えます。
[R5RS+] ベクタvectorのk番目の要素を返します。
vector-ref
はkが負の値であったりベクタの長さより
大きかったりした場合はエラーを通知します。但し、省略可能な引数fallback
が与えられている場合はその値が返されます。これはGaucheの拡張です。
gauche.sequence
モジュールをロードしていれば、
メソッドref
も同じ目的で使えます。
[R5RS] ベクタvectorのk番目の要素をobjに変更します。 kが負数であったりベクタの長さより大きい場合はエラーとなります。
gauche.sequence
モジュールをロードしていれば、
メソッドref
のsetterメソッドも使えます。
[R5RS+][SRFI-43+] ベクタをリストに変換したり、その逆を行う手続きです。
省略可能な引数startとendを与えることにより、 値を取り出す範囲を制限することができます。
(vector->list '#(1 2 3 4 5)) ⇒ (1 2 3 4 5) (list->vector '(1 2 3 4 5)) ⇒ #(1 2 3 4 5) (vector->list '#(1 2 3 4 5) 2 4) ⇒ (3 4) (list->vector (circular-list 'a 'b 'c) 1 6) ⇒ #(b c a b c) |
gauche.collection
モジュールをロードしていれば、
(coerce-to <list> vector)
と
(coerce-to <vector> list)
も同じ目的で使えます。
[R5RS+][SRFI-43] ベクタvectorの全ての要素をfillに変更します。
省略可能な引数startとendが与えられた場合、 start番目の要素からend-1番目の要素までのみに fillを格納します。startとendの既定値は それぞれ0とvectorの大きさです。 start, end引数はGaucheの拡張です。
[SRFI-43] ベクタvectorをコピーします。引数startとendを与えることで コピーされる範囲を制限することができます。 startとendで指定される範囲が元のvectorの範囲を越えた 場合は、その部分がfillで埋められます。
(vector-copy '#(1 2 3 4 5)) ⇒ #(1 2 3 4 5) (vector-copy '#(1 2 3 4 5) 2 4) ⇒ #(3 4) (vector-copy '#(1 2 3 4 5) 3 7 #f) ⇒ #(4 5 #f #f) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on November, 22 2009 using texi2html 1.78.