From: John M. S. <sk...@oz...> - 2003-06-19 12:32:03
|
Brian Hurt wrote: > On Tue, 17 Jun 2003, John Skaller wrote: >>Can't you initialise the empty slots with Obj.magic(0)? >> > No. What if it's an array of floats, which is unboxed? Ah. > If you don't have a convient default, use a 'a option Dynarray.t. No way. That's a hack to support a faulty implementation. I want a 'a Dynarray.t, the *filled* slots always have that type. I don't see why I should change the type to suit an implementation that can't handle the idea of a variable length array properly. C++ vector does this correctly. > Note: in the current API there is no way to get access to an element with > a null value. So you don't ever have to worry about distinguishing null > values from sensible values. So it's still safe if the null value would > otherwise have meaning. I have examples where I CANNOT construct a dummy value. The fact that the value is not accessible with an array access cannot remove a requirement an object may have to connect to other objects. In particular, consider a type in which a representation of an open file handle is stored. Now you force me to create a dummy file in the file system just to create an array. It could be there is NO good solution in Ocaml. In that case, use a C solution. I want this data structure to work exactly right, and I need it precisely *because* I can't define it myself. -- John Max Skaller, mailto:sk...@oz... snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia. voice:61-2-9660-0850 |