[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

Re: [zzdev] More about dimensions (lists)

> This seems like a problem. It comes from the ZZ space axioms - the
> possiblity to have loops, I mean. It makes the model clean, there's no
> need for special restriction "you can't loop". But the general data
> structure case is to not have loops. And every loop can be reduced to a
> list. Think about the DimLists: there's a finite number of dimensions,
> but infinite number of steps forward. You can want it to be infinite so
> you can cycle through it forever, but you can also want to get just a
> finite list containing all the dimensions.

There are supposed to be headcells for looping lists. With them, reading
just the dimensions is going to be easy. You can also see manually whether
you're looping.

> In short: DimList cycle is just a hack to make it easier to cycle
> through dimensions. Is it so with every other loop too?

You could also say that ZigZag is a hack to mke it easier to structure and
visualize information naturally. Both are equally true in a sense.
> Suggestion #1: we rename d.2 as d.next and give it the honour to be one
> of the very special dimensions in ZZ space, implementing one-to-many
> relations.

Clones are also a one-to-many relation. Should that too be handled on
d.next? In a sense, d.2 *is* the d.next you are thinking about: Ted's
comment about it is that it's usually used to indicate sequence.

So one solution would be to make the master dim list a corner list on d.2.
Would this solve the problem?

> Suggestion #3: think through the loops now; could we get rid of them,
> should we make special operations for them (ie. getNeighbour and
> getLoopNeighbour), should we always have both a looping and a
> non-looping version of lists (along d.next and d.lnext)

I feel that this would be unnecessary complexity: if you are afraid of
loops, you should simply use LoopDetector. It's very simple and cheap. 
Because if your structure is any more complicated than a list, you *are*
going to have potential loops and removing lops from lists is not going to
help you any.

> Suggestion that-is-the-most-relevant: think about this, tell me why I'm
> wrong, and tell me what to do in compass raster :-)

Maybe change d.masterdim to d.2?