Module Array その 1

Array モジュールの関数をいくつか使ってみた。残りは次回。

val make : int -> 'a -> 'a array

# let a_i = Array.make 3 0;;
val a_i : int array = [|0; 0; 0|]
# let a_s = Array.make 3 "string";;
val a_s : string array = [|"string"; "string"; "string"|]
# let a_c = Array.make 3 'c';;
val a_c : char array = [|'c'; 'c'; 'c'|]
# let a = [|0;1;2;3|];;
val a : int array = [|0; 1; 2; 3|]

val init : int -> (int -> 'a) -> 'a array

# let a = Array.init 3 (fun i -> Printf.sprintf "value%02d" i);;
val a : string array = [|"value00"; "value01"; "value02"|]

val make_matrix : int -> int -> 'a -> 'a array array

# let a = Array.make_matrix 2 3 0;;
val a : int array array = [|[|0; 0; 0|]; [|0; 0; 0|]|]

val length : 'a array -> int

# let a = [|0; 1; 2; 3|];;
val a : int array = [|0; 1; 2; 3|]
# let length = Array.length a;;
val length : int = 4

val get : 'a array -> int -> 'a

# let a = [|0; 1; 2; 3|];;
val a : int array = [|0; 1; 2; 3|]
# let v = Array.get a 0;;
val v : int = 0
# let v = Array.get a (-1);;
Exception: Invalid_argument "index out of bounds".
# let v = Array.get a 4;;
Exception: Invalid_argument "index out of bounds".

val set : 'a array -> int -> 'a -> unit

# let a = [|0; 1; 2; 3|];;
val a : int array = [|0; 1; 2; 3|]
# Array.set a 0 10;;
- : unit = ()
# a;;
- : int array = [|10; 1; 2; 3|]
# Array.set a (-1) 10;;
Exception: Invalid_argument "index out of bounds".