Chapter 2 データ型 - 2.2 合成データ型 - 2.2.2 ベクタ
配列とか「リスト」と呼ばれるものとは違うのかな? 多次元を扱えるトコが良いトコ? 処理も入る「リスト」と分けて「データ」というのを強調してるのかな?
gosh> (vector 0 1 2 3 4) #(0 1 2 3 4)
#(...) が簡略記法ってこと?
gosh> #(0 1 2 3 4) #(0 1 2 3 4)
まさに。
文字型も入るかな?
gosh> (vector #\H #\e #\l #\l #\o) #(#\H #\e #\l #\l #\o)
うん。
混合はどうよ?
gosh> (vector 0 "h" 1 "e" 2 "l" 3 "l" 4 "o") #(0 "h" 1 "e" 2 "l" 3 "l" 4 "o")
うん。
gosh> (define v (make-vector 5)) v gosh> v #(#<undef> #<undef> #<undef> #<undef> #<undef>)
make-string は半角スペースで埋まってたけど、これは undef だなぁ。色んな型が入るからだろうけど。
string と同じく "vector-ref ベクタ インデックス" で get。"vector-set! ベクタ インデックス オブジェクト" で set。
gosh> (vector-ref v 2) #<undef> gosh> (vector-set! v 2 "l") #<undef> gosh> (vector-ref v 2) "l"
gosh> v #(#<undef> #<undef> "l" #<undef> #<undef>) gosh> (vector-set! v 0 "H") #<undef> gosh> (vector-set! v 1 "e") #<undef> gosh> (vector-set! v 3 "l") #<undef> gosh> (vector-set! v 4 "o") #<undef> gosh> v #("H" "e" "l" "l" "o")
今日はここまで。