langs a-z

This commit is contained in:
Ingy döt Net 2013-04-10 22:43:41 -07:00
parent db842d013d
commit d066446780
11389 changed files with 98361 additions and 1020 deletions

View file

@ -0,0 +1,16 @@
let rec copy t =
if Obj.is_int t then t else
let tag = Obj.tag t in
if tag = Obj.double_tag then t else
if tag = Obj.closure_tag then t else
if tag = Obj.string_tag then Obj.repr (String.copy (Obj.obj t)) else
if tag = 0 || tag = Obj.double_array_tag then begin
let size = Obj.size t in
let r = Obj.new_block tag size in
for i = 0 to pred size do
Obj.set_field r i (copy (Obj.field t i))
done;
r
end else failwith "copy" ;;
let copy (v : 'a) : 'a = Obj.obj (copy (Obj.repr v))

View file

@ -0,0 +1,3 @@
let copy h =
{ size = h.size;
data = Array.copy h.data }