Nice.
The expression in ascmap after the comma can also be
stated as:
(' ',x) {~ (i.->./t) </ t=. +/\1 _1 0 {~ '()' i. y
In addition, using box drawing characters and fixing
the "off-by-1" effect of the closing parens, we get:
map=: 3 : 0
(9!:6 '') map y
:
b=. (i.->./t) </ t=. +/\1 _1 0 {~ '()' i. y
y , (2 #.\"(1) 0,.b) { ' ',6 8 10{x
)
f=: [: (#~ (0 ~: 1&{"1))@; <@(0&{ ,. 1&{ ([EMAIL PROTECTED] ,. (] +//. ["0)
,. [ * [EMAIL PROTECTED]) 2&}.)"1
map 5!:5 <'f'
[: (#~ (0 ~: 1&{"1))@; <@(0&{ ,. 1&{ ([EMAIL PROTECTED] ,. (] +//. ["0) ,. [ *
[EMAIL PROTECTED]) 2&}.)"1
└──────────┘
└──────────┘ └───────────────────────────────┘
└───────────────┘ └─────────────────────────────────────────────────┘
----- Original Message -----
From: Oleg Kobchenko <[EMAIL PROTECTED]>
Date: Tuesday, July 29, 2008 23:38
Subject: Re: [Jgeneral] tracing tacit definition execution
To: General forum <[email protected]>
> Here's a spacious version of the same idea.
>
> ascmap=: '-'&$: : (4 : 'y,|.|:x#~"0+/\1 _1 0{~y i.~40 41{a.')
>
> ascmap S
> [: (#~ (0 ~: 1&{"1))@; <@(0&{ ,. 1&{ ([EMAIL PROTECTED] ,. (] +//. ["0) ,.
> [ * [EMAIL PROTECTED]) 2&}.)"1
> -----------
> -----------
> --------------------------------
> ---------------- -----
> ---------------------------------------------
>
> ascmap 5!:5<'assert'
> 0 0"_ $ 13!:8^:((0: e. ])`(12"_))
> -------- -----
> -----------------
>
> ascmap 5!:5<'table'
> 1 : (':'; '((([EMAIL PROTECTED])5!:5<''u'');,.y),.({.;}.)":x,y u/x')~
> -----------
> -----------------------
> ----
> ------------------------- ------
>
> ----------------------------------------------
> ----------
>
> ascmap 5!:5<'toCRLF'
> 2&}.@:;@:((13{a.)&,&.>@<;.1@((10{a.)&,)@toJ)
> ------
> ------
> ----------
> ----------------
> ------------------
>
> ascmap 5!:5<'deb'
> #~ (+. (1: |. (> </\)))@(' '&~:)
> ------
> --------------
>
> ------------------- -------
>
> load'printf'
> ascmap 5!:5<'formatS_jprintf_'
> ;:^:_1@:(":&.>)^:(32&=@(3!:0)) :((((<. #) {. ])~ 2&{)~
> ;:^:_1@:(":&.>)^:(32&=@(3!:0))) -----
>
> ------------
> -----
> ----- ------------------- ------
> ------------
> ------ ---
> --------- -------------------------------------------
> ----------
>
>
>
>
> > Roger Hui <[EMAIL PROTECTED]> wrote:
> >
> > map=: 3 : 't ,: 1":+/\(''(''=t)+_1}.0,-
> '')''=t=. 5!:5 y'
> > f=: [: (#~ (0 ~: 1&{"1))@; <@(0&{ ,. 1&{
> ([EMAIL PROTECTED] ,. (] +//. ["0) ,. [ * [EMAIL PROTECTED])
> > 2&}.)"1
> >
> > map <'f'
> > [: (#~ (0 ~: 1&{"1))@; <@(0&{ ,. 1&{ ([EMAIL PROTECTED] ,. (] +//. ["0)
> ,. [ * [EMAIL PROTECTED]) 2&}.)"1
> >
> 000111122222222222210000011111111111122222222233333333333322222222222211111100>
>
> > Areas of equal depths should be joined together, unless
> separated
> > by an area of lesser depth.
> >
> > Works for paren nesting of depth up to 9.
> >
> >
> >
> > ----- Original Message -----
> > From: Oleg Kobchenko
> > Date: Tuesday, July 29, 2008 21:05
> > Subject: Re: [Jgeneral] RE: tracing tacit definition execution
> > To: General forum
> >
> > ...
> > > Here is a compact way to graphically box nested expressions,
> > > which preserves compact linear form. You can easily doodle
> it
> > > manually, while visually scanning the structure.
> > >
> > > http://www.jsoftware.com/jwiki/OlegKobchenko/Map_Display
> > >
> > > By its likeness, it is called Map Display.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm