Alexander Klenin schrieb:
1) Proposed syntax seems somewhat suboptimal. Historically, Pascal
used redundancy and keywords to minimize the chance of errors and
make diagnostics easier. In that spirit, I think some active indication
of arbitrary upper bound is preferable to a mere omission:
IDECommandStrs: array[0..*] of TIdentMapEntry = (
IDECommandStrs: array[0..auto] of TIdentMapEntry = (
IDECommandStrs: array[0..end] of TIdentMapEntry = (

I would vote for "auto". But beside finding a good syntax I am not sure whether 
it is so easy to implement such automatic border calculation. If the size is defined 
before the declaration, then the compiler can reserve the required space. With automatic 
calculation it would have to store the array data somewhere else with more or less 
infinite (at least unknown) space requirement. I am not sure whether this can be achieved 
easily and whether it's worth the effort.

2) We should think through and specify how multi-dimensional arrays should work:
matrix: [1..auto, 1..auto] of Integer = ((1, 2, 3), (4, 5, 6));

Well, if it works with one dimension it should work with more too. The only 
problem would be, that after the first dimension is completed for the first 
time, the found size has to be fixed for all other levels:

matrix: [1..auto, 1..auto] of Integer = ((1, 2, 3), (1, 2, 3), (1, 2, 3));

would be ok but

matrix: [1..auto, 1..auto] of Integer = ((1, 2, 3), (1, 2), (1, 2));

has to be rejected (cause an error).



--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to