On Sun, 2005-07-31 at 01:24 +0200, Thomas Fischbacher wrote: > I originally was somewhat worried whether extensible arrays really would > be such a dramatic improvement - what if the next person needs displaced > arrays, or any other functionality from CL's arrays with their many bells, > gongs, and whistles? But thinking a bit more about it, it seems as if > virtually anything of interest could be accomplished by other means, with > the exception of just extensible arrays. You have gone further than me, since your thoughts support the proposition that extensible arrays are the *only* data structure missing from the core libraries, which cannot be safely encoded by the end user in Ocaml. Whether or not that proposition is sustainable, it would just be nice if the programmer had a choice: it should not really be that the compiler vendor forces the programmer to make a particular choice for their application, IMHO. I have been quite involved in another such scenario, where the compiler vendor 'forces' the naive C programmer requiring user space context switching to write compiler dependent assembly code to do that job, since the standard library setjmp/longjmp doesn't quite do enough. For C this is not too onerous, particular for OS that now provide this support in a library .. however for C++ it is virtually impossible, since with exception handling the stack modelling is much more difficult than plain C. My argument here is that 'control exchange' is an absolutely fundamental computing primitive, and the failure of the C language to provide it utterly condemns C as a general language -- and has forced generations of developers to encoding things badly, lead to miseducation, and a lot of other serious problems. I would direct the same wrath at C++ for failing to provide proper discriminated unions and first class lexically scoped functions: to build a programming system that deliberately omits *fundamentals* of programming is shameful. Of course this doesn't apply nearly as strongly to extensible arrays: they're hardly fundamental in the theoretical sense that control exchange, categorical sums, and first class functions with closures are: its merely a commonly data structure, certainly less useful in Ocaml than some other systems. -- John Skaller