[kepler-dev] Re: zero-length arrays
Shawn Bowers
bowers at sdsc.edu
Thu Aug 12 07:58:43 PDT 2004
> > Isn't this last point just an implementation detail? Ultimately, a list
> > is the "abstract" data structure, and array is just a common programming
> > language implementation for a list-like structure. The more general
> > construct is really "collection" for which bags (mult-sets), sets, and
> > lists are specific types of collections.
>
> That's completely true. But the underlying implementation determines the
> efficiency of operations on the structure, and therefore the algorithms
> that you'll choose to use.
Yes, of course, and that is what is cool about Ptolemy; if you need
another implementation the type system is there for the taking. (My
comment above was on your suggestion to make ArrayToken the more general
type.)
> it's possible that the right avenue IS just to create a decent set of
> built-in primitives, so that these expensive implementations are not
> necessary, and therefore avoid language creep.
Yep.
> > Also, it isn't clear to me that an empty record is a useful structure,
> > whereas I definately see how an empty array (or more specifically an empty
> > list) is useful.
>
> That's a good point. But I don't think we'd want to rule out empty
> records entirely... who knows when they might be useful? (Also, the empty
> record is a good type signature of "a record of some kind.")
>
> But it seems that Ptolemy allows empty records: intersect({foo=0},{bar=0}) !
These aren't empty records though, right? They both have one component:
one has foo and the other bar. Maybe I don't understand your example.
An empty record would be a suitable way to represent a record of unknown
length, and components. But as a data structure, the utility seems pretty
narrow.
shawn
>
> Also seems like a good reason to allow empty records.
>
> Tobin
> _______________________________________________
> kepler-dev mailing list
> kepler-dev at ecoinformatics.org
> http://www.ecoinformatics.org/mailman/listinfo/kepler-dev
>
More information about the Kepler-dev
mailing list