If the mountain graph suits you well, how about
,./ ((i.@#) ((' ' , ":@[) {~ =)"0 1 ]) d
0
1
2
2
1
1
2
2
3
?
Am 07.08.20 um 18:12 schrieb ethiejiesa via Programming:
Thanks for the thoughts!
not as pretty, but simpler and pretty enough?
(":"0@i.@# (,~ #&'-')"1 0 ]) 0 1 2 2 1 1 2 2 3
0
-1
--2
--3
-4
-5
--6
--7
---8
This is sort of in between the raw depth vector and the graph representation.
It's probably fine for smallish trees, but especially with larger trees, I find
it hard to visually pick out subtrees. For that, the explicit links between
sibling nodes is really helpful.
Otherwise, an even more minimal "mountain graph" is probably serviceable:
(=/ ~.) d
1 0 0 0
0 1 0 0
0 0 1 0
0 0 1 0
0 1 0 0
0 1 0 0
0 0 1 0
0 0 1 0
0 0 0 1
J has several functions built in to process trees that are represented as
nested box structures, and so may be useful in converting from various
representations to and from such boxed structures. Or more interesting to me,
but I need more thought on this.
It really depends. Nested boxes require quite a lot of overhead, no? Pilfering
the structure of an example tree from Voc, Appendix A (Foreign Conjunction),
Representation (5!:) [0]:
[ s=: (((0;1;2);3;<4;5));6;7 NB. Nested box representation
┌─────────────────┬─┬─┐
│┌───────┬─┬─────┐│6│7│
││┌─┬─┬─┐│3│┌─┬─┐││ │ │
│││0│1│2││ ││4│5│││ │ │
││└─┴─┴─┘│ │└─┴─┘││ │ │
│└───────┴─┴─────┘│ │ │
└─────────────────┴─┴─┘
7!:5 <'s'
512
[ t=: 0 1 2 3 3 3 2 2 3 3 1 1 NB. Depth vector representation
7!:5 <'t'
256
That said, it would be neat if we could trick (5!:4) into pretty-printing (s)
for us.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
----------------------
mail written using NEO
neo-layout.org
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm