ベクトル

Last-modified: 2012-10-15 (月) 00:19:25

配列と呼ばれることもある。

リテラル表現

#("Sapporo" "Tokyo" "Nagoya" "Osaka" "Fukuoka")
→ array[5]:1845232

makeVector

(makeVector サイズ [初期値])
(setq cities (makeVector 5) "")
cities
→ array[5]:1796257

listToVector

リストオブジェクトをベクトルオブジェクトに変換する。

(listToVector '("Sapporo" "Tokyo" "Nagoya" "Osaka" "Fukuoka"))
→ array[5]:1456823

vectorToList

ベクトルオブジェクトをリストオブジェクトに変換する。

(vectorToList #("Sapporo" "Tokyo" "Nagoya" "Osaka" "Fukuoka"))
→ ("Sapporo" "Tokyo" "Nagoya" "Osaka" "Fukuoka")

declare

変数名をつれてベクトルを生成する。

; 配列の定義
(declare cities[5])

setarray

特定の位置の要素への値の代入。Scheme言語の vector-set! 関数の代替である。

(setq cities (makeVector 5))
(setarray cities 0 "Sapporo")
(setarray cities 1 "Tokyo")
(setarray cities 2 "Nagoya")
(setarray cities 3 "Osaka")
(setarray cities 4 "Fukuoka")

「変数名[位置] = 値」の形式の糖衣構文も使える。

cities[0] = "Sapporo"
cities[1] = "Tokyo"
cities[2] = "Nagoya"
cities[3] = "Osaka"
cities[4] = "Fukuoka"

arrayref

特定の位置の要素の値を読み出す。Scheme言語の vector-ref 関数の代替である。

(setq budget #(12.5 10.1 11.7 13.3 12.0 14.2 13.5 12.8 14.6 11.5 10.7 11.6))
(setq quarter1 (plus (arrayref budget 0) (arrayref budget 1) (arrayref budget 2)))

「変数名[位置]」の形式の糖衣構文も使える

(setq quarter1 (plus budget[0] budget[1] budget[2]))