[fpc-devel] for-in-index loop
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Sat Jan 26 15:47:48 CET 2013
Alexander Klenin schrieb:
> I think you meant "array of const" instead of "open array", since open array is
> just a method to pass arbitrary-sized array (of a single element type,
> of course).
Yes, indeed. I missed that you already mentioned "array of const" as a
possible syntax/implementation.
> As for array of Vaiant and array of const -- they are very different
> from the tuples proposal.
> Note that tuples proposal is carefully constructed in such a way that
> tuples are statically (but implicitly)
> typed, so no run-time overhead is involved, and all type errors are
> detected at compile-time.
I doubt that this is possible in OPL without much additional (type,
name) information in source code. Consider how many number types exist,
so that "[1]" can be a 1-tuple of almost any numeric type. Depending on
what exact type the compiler chooses, the type may be too big or too
small for subsequent assignments of other values, or to records. A
practical implementation IMO will ressemble a record definition with
explicit types added to every element. Otherwise "array of const" could
be used, with included type information, and (automatic) type conversion
when a tuple is used as a parameter list or operand.
The use as an argument list replacement will hardly match the signature
of the subroutine, which expects exact types, modifiers (const/var) and
calling convention (register/stack usage).
I don't see how tuples can be used without a new variable type. Without
such an container the assignment of one tuple to another one will have
no useful effect, because the result is lost.
Can you give more practical examples on your idea of using tuples in OPL?
I only could find an obvious use in record constructors, where the
target record provides the tuple type as in
ARectangle.TopLeft := (100; 200);
or better
ARectangle.TopLeft := [100, 200];
This would be nice, indeed, but hardly worth to introduce tuples for
only this purpose.
DoDi
More information about the fpc-devel
mailing list