inc_array.ml (350B)
1 (* Arrays that are initialized incrementally. *) 2 3 open Util 4 5 type 'a t = { 6 mutable length: int; 7 data: 'a array; 8 } 9 10 let make 11 : 'a. int -> 'a t 12 = fun n -> {length = 0; data = Array.make n garbage} 13 14 let add 15 : 'a. 'a t -> 'a -> unit 16 = fun a v -> 17 a.data.(a.length) <- v; 18 a.length <- a.length + 1 19 20 let to_array 21 : 'a. 'a t -> 'a array 22 = fun a -> a.data