Browse thread
Re: reference initialization
-
Pierre Weis
-
Hongwei Xi
- Daniel de Rauglaudre
- Daniel de Rauglaudre
-
Hongwei Xi
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2000-05-14 (21:15) |
From: | Daniel de Rauglaudre <daniel.de_rauglaudre@i...> |
Subject: | Re: reference initialization |
On Thu, May 11, 2000 at 02:59:16PM -0400, Hongwei Xi wrote: > I want to combine two arrays into one. Here is the code in OCaml. > ... Simple (library) solution: ======================= let combine_arrays a b = let alen = Array.length a in let blen = Array.length b in Array.init (alen + blen) (fun i -> if i < alen then a.(i) else b.(i - alen)) ======================= Simple (custom) solution: ======================= let combine_arrays a b = let alen = Array.length a in let blen = Array.length b in if alen = 0 && blen = 0 then [| |] else let c = Array.make (alen + blen) (if alen = 0 then b.(0) else a.(0)) in in begin for i = 0 to alen - 1 do c.(i) <- a.(i) done; for i = 0 to blen -1 do c.(alen + i) <- b.(i) done end ======================= Dirty solution (don't tell them I told you): ======================= let combine_arrays a b = let alen = Array.length a in let blen = Array.length b in let c = Array.make (alen + blen) (Obj.magic 0) in begin for i = 0 to alen - 1 do c.(i) <- a.(i) done; for i = 0 to blen -1 do c.(alen + i) <- b.(i) done end ======================= -- Daniel de RAUGLAUDRE daniel.de_rauglaudre@inria.fr http://cristal.inria.fr/~ddr/