in reply to Re: How might I handle a special tree?
in thread How might I handle a special tree?

I thought about AoA, but that is not enought. For example:

[1,2,3,4,5,6,7,8,9]

should be converted to something like this:

[1,[2,3,4],5,[6,[7,8,9]]]

What is missing in this structure is the placeholder, which will have a group name... that's a new value in the list!

I guess that I could manage the first element in each list as the name of the placeholder, resulting something like this:

[A,1,[B,2,3,4],5,[C,6,[D,7,8,9]]]

BTW, while traversing, how could I recognize if current element is a scalar or another list to recurse?

Replies are listed 'Best First'.
Re^3: How might I handle a special tree? (updated)
by LanX (Saint) on Dec 07, 2014 at 23:02 UTC
    > how could I recognize if current element is a scalar or another list to recurse?

    with ref

    > What is missing in this structure is theplaceholder, which will have a group name... 

    No idea what you may mean...

    update

    Maybe

     [ {A => [1, {B => [2,3,4]} ,5, {C => [ 6, { D => [7,8,9] } ] } ]

    ? ? ?

    (untested)

    update

    TIMTOWTDI

    Instead of a one element hash you could use a 2 element array.

    Or put the "placeholder" into the sub array as first element.

    I personally prefer the hash solution for readability, but keep in mind that keys are stringified.

    Cheers Rolf

    (addicted to the Perl Programming Language and ☆☆☆☆ :)

      Thanks for ref. I missed that ;-)

      Your latest structure example looks nice, but I think it would complicate the search and replace algorithms, more than what BrowserUk said.

      I think I'll stay with my AoA proposal, with the first element as the group name (adding a null or "root" element to the original list).