dtlc

dependently-typed lambda calculus toy
git clone git://git.rr3.xyz/dtlc
Log | Files | Refs | README | LICENSE

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