<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/10/19fb72de40775f093b3e192e9e0debc3"
  from="Ram Bhamidipaty &lt;ramb@s...&gt;"
  author="Ram Bhamidipaty"
  date="2003-10-02T06:09:49"
  subject="[Caml-list] beginner needs help creating a dynamically resizable array"
  prev="2003/10/f586481c4fa95ec8f77daecc517abe25"
  next="2003/10/110a7ca80c34650ebf799695785ff6f5"
  next-in-thread="2003/10/110a7ca80c34650ebf799695785ff6f5"
  prev-thread="2003/10/76aa3bb06f8f74f7369f6316670fddd9"
  next-thread="2003/10/261f050dccf87201bc913df1d656bf10"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] beginner needs help creating a dynamically resizable array">
<msg 
  url="2003/10/19fb72de40775f093b3e192e9e0debc3"
  from="Ram Bhamidipaty &lt;ramb@s...&gt;"
  author="Ram Bhamidipaty"
  date="2003-10-02T06:09:49"
  subject="[Caml-list] beginner needs help creating a dynamically resizable array">
<msg 
  url="2003/10/110a7ca80c34650ebf799695785ff6f5"
  from="Michal Moskal &lt;malekith@p...&gt;"
  author="Michal Moskal"
  date="2003-10-02T07:00:17"
  subject="Re: [Caml-list] beginner needs help creating a dynamically resizable array">
</msg>
<msg 
  url="2003/10/72fbe552f5ee4e817ec1e4c3928c7888"
  from="Nicolas Cannasse &lt;warplayer@f...&gt;"
  author="Nicolas Cannasse"
  date="2003-10-02T07:27:00"
  subject="Re: [Caml-list] beginner needs help creating a dynamically resizable array">
</msg>
<msg 
  url="2003/10/c9b4be8b6e07171d23f3098359d1a498"
  from="Markus Mottl &lt;markus@o...&gt;"
  author="Markus Mottl"
  date="2003-10-02T09:58:12"
  subject="Re: [Caml-list] beginner needs help creating a dynamically resizable array">
</msg>
</msg>
</thread>

<contents>
I am trying to create a dynamically resizable array. So far this is what I have:

type 'a darray = {
    mutable size_of_buf : int;
    mutable num_in_buf : int;
    mutable buf : 'a array;
  }
;;

let create t = { size_of_buf=20; num_in_buf=0; buf = Array.make 20 t; }
;;

I want to create a function that can resize this array. I want the
function to look something like this:

let resize dyn_array_ref new_size =
  
;;

The function resize should table a reference to a darray record, and
an int that specifies the new desired size of the array. There should
be no return value.

The problem I am running into is that I don't know how to create a new
larger array of the same time as the original array. The only two
choices that I can think of are: 1. Somehow store the type of the
array in the record or 2. Somehow get the array element type from the
"buf" array in the record.

Unfortunately I have no idea about how to do either 1 or 2.

I know there is atleast one package/module that provides this
functionality. But I don't want to use someone elses code - I am
trying to learn OCaml and I think this would be a good thing to do
with my own code.

Any help will be appreciated.
-Ram

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

