------ Original Message ------
From: "Thiago Macieira" <[email protected]>
To: [email protected]
Sent: 04/12/2015 09:33:03
Subject: Re: [Development] Proposal to change connectSlotsByName
behavior
On Friday 04 December 2015 08:16:43 André Somers wrote:
>But I'd expect that the flattening of the tree produces depth-first.
>Breadth-
>first could result in a violation of the principle of least
surprise.
Why? That is not my expectation at all. If you ask somebody if he has
a
child named Maria, is he most likely to first name his second
daughter
or the granddaughter by his first child you think?
I agree and disagree. The listing people may use in their heads may
look like
breadth first, but it's actually more chaotic. If you asked someone to
name all
the descendants of a grandparent, they will probably group siblings,
and the
groups may be sorted by generation, but within each generation the
groups may
be out of order.
Nana
Alice Bob Charlie Dave
Elsa, Frank Gerald, Hector, Isabel Joey,Kevin Lisa
If you ask for someone to list that, it may come out as "Alice, Bob,
Dave,
Charlie, Gerald, Hector, Isabel, Lisa, Elsa, Frank, Kevin, Joey"
Well, indeed you are right. If I am to name or even count descendants,
I'd probably go depth-first.
However, when talking about computer programming, I'd wager that people
expect
depth-first, if not for the simple reason that this is how they'd
implement it
if they were asked to.
This is getting off topic, but this discussion does make me wonder -
again - if we shouldn't move away from this intrusive parent-children
data structure completely. We are not using intrusive data structures
any more to create (linked) lists, why do we still do that for
trees/forests? Then, you would just get the iterator with the behaviour
you need (depth first or breath first or some other access pattern) and
run whatever algorithm you need on that. And yes, that would be a very,
very intrusive change.
André
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development