It was simple to convert my parent-index form to use with the tree display
function "tree":
nmsb=.
'C:';'n0';'n1';'n00';'n01';'n10';'n11';'n12';'n100';'n110';'n111';'n112'
NB. Node names
trb=. _1 0 0 1 1 2 2 2 5 6 6 6 NB. Parent-index tree
EW=: {: BOXC=: 11{.16}.a. NB. Line-drawing characters
tree (}.trb{nmsb),.}.nmsb
+----------------------------+
| ┌─ n00 |
| ┌─ n0 ─┴─ n01 |
| │ ┌─ n10 ─── n100|
|─ C: ─┤ │ ┌─ n110|
| └─ n1 ─┼─ n11 ─┼─ n111|
| │ └─ n112|
| └─ n12 |
+----------------------------+
On Mon, Jul 20, 2020 at 3:54 PM Devon McCormick <[email protected]> wrote:
> Thanks everyone for the responses. I have watched the APL video recently
> but have not tried to convert Aaron's code to J. However, the essay
> suggested by Julian does what I want.
> Bo's response is intriguing but I have not figured out how to convert my
> tree representation to ordinal numbers.
>
> On Mon, Jul 20, 2020 at 1:40 PM 'Bo Jacoby' via Programming <
> [email protected]> wrote:
>
>> Minor simplification:
>>
>> n=.(/:{])12 3$'000100200110120210220230211221222223'
>>
>> (6-~+/"1 n='0')|."0 1 n,"1'00',(4#' '),'§'
>>
>>
>>
>> Thanks.
>> Bo.
>> Den søndag den 19. juli 2020 23.49.17 CEST skrev 'Bo Jacoby' via
>> Programming <[email protected]>:
>>
>> I use ordinal fractions.
>>
>>
>>
>> nms=.'000';'100';'200';'110';'120';'210';'220';'230';'211';'221';'222';'223'
>>
>>
>>
>> The digits are ordinal numbers, 1, 2, 3, . . . rather than cardinal
>> numbers 0, 1, 2, . . .
>> The digit zero means everything rather than nothing.
>>
>>
>>
>> nms=.'000','100','200','110','120','210','220','230','211','221','222',:'223'
>>
>> nms=.(/:nms){nms NB. sort
>>
>> (3-~+/"1 nms='0')|."0 1 nms,"1' '
>>
>> 000
>>
>> 100
>>
>> 110
>>
>> 120
>>
>> 200
>>
>> 210
>>
>> 211
>>
>> 220
>>
>> 221
>>
>> 222
>>
>> 223
>>
>> 230
>>
>>
>>
>>
>> This is not the J concept of array, but something else.
>>
>> Den søndag den 19. juli 2020 22.13.08 CEST skrev Devon McCormick <
>> [email protected]>:
>>
>> Does anyone have a good way to display a tree in J? EG
>> C:
>> |__n0
>> | |_n00
>> | |_n01
>> |
>> |__n1
>> |__n10
>> | |__n100
>> |__n11
>> | |__n110
>> | |__n111
>> | |__n112
>> |__n12
>> for a tree in parent index form:
>> tr=. _1 0 0 1 1 2 2 2 5 6 6
>> 6
>> nms=.
>> 'C:';'n0';'n1';'n00';'n01';'n10';'n11';'n12';'n100';'n110';'n111';'n112'
>> Where "tr" is the parent-index form (with _1 for the root) and "nms" are
>> the names of each node.
>>
>> Any other neat representation of a tree would also be appreciated.
>>
>> Thanks,
>>
>> Devon
>>
>> --
>>
>> Devon McCormick, CFA
>>
>> Quantitative Consultant
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
> --
>
> Devon McCormick, CFA
>
> Quantitative Consultant
>
>
--
Devon McCormick, CFA
Quantitative Consultant
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm