Or you could do jwords"1 for character matrices. (What's the use case for that?)
Or, for example:
jwords@>LF cut 5!:5<'jwords'
3 : 0
boxy =. ( 16 + i. 11 ) -: 9 !: 6 ''
9 !: 7 ] 11 # ' '
r =. deb 1 { ": ;: y
( 16 + i. 11 ) 9 !: 7 @ ( [ ^: boxy ) '+++++++++|-'
r
)
For added fun, you might modify jwords to capture and preserve the
leading spaces (indentation) of each sentence.
FYI,
--
Raul
On Mon, Oct 29, 2018 at 12:15 PM 'Pascal Jasmin' via Programming
<[email protected]> wrote:
>
> Useful for email formatting for any single row of boxes, but I think the in
> console/jqt boxed display is not too bulky.
>
> For multiple rows, the odd indexes would capture the data, in a likely
>
> 1 3{ ": 2 4 $ ;:'J sentence that is 2 by 4 formatted'
> │J│sentence│that│is │
> │2│by │4 │formatted│
>
> though this still eats spaces in email, not in console.
>
>
>
> ________________________________
> From: Raul Miller <[email protected]>
> To: Programming forum <[email protected]>
> Sent: Monday, October 29, 2018 11:38 AM
> Subject: [Jprogramming] J word formation rules (1 { ": ;: 'J sentence')
>
>
>
> Just a quick note:
>
>
> Newcomers to J tend to not be familiar with J's word formation rules.
>
>
> You can see them using ;:'J sentence' but sometimes the bulk of that
>
> result can be distracting.
>
>
> An easy variation on this theme is to format the boxed sentence and
>
> then take row #1 (which is where all the interesting stuff is).
>
>
> 1{":;:'J sentence'
>
> │J│sentence│
>
> 1{":;:'0 0 ssmb S:0 b'
>
> │0 0│ssmb│S:│0│b│
>
> 1{":;:'/:~'
>
> │/:│~│
>
> 1{":;:'+/%#'
>
> │+│/│%│#│
>
>
> The vertical bars are still a bit noisy, but you could go:
>
> 9!:7]11#' '
>
>
> to make them be spaces. For example:
>
>
> 1{":;:'/:~'
>
> /: ~
>
>
> And then either 9!:7]16+i.11 or 9!:7'+++++++++|-' to put things back.
>
>
> I would be tempted to put that into a cover function which is
>
> sensitive to the starting state, but error handling and the global
>
> character of 9!:7 makes that just a little messy. Still... messy has
>
> never daunted me for too long, so:
>
>
> jwords=:3 :0
>
> boxy=. (16+i.11)-:9!:6''
>
> 9!:7]11#' '
>
> r=. deb 1{":;:y
>
> (16+i.11)9!:7@([^:boxy)'+++++++++|-'
>
> r
>
> )
>
>
> jwords 4{::LF cut 5!:5<'jwords'
>
> ( 16 + i. 11 ) 9 !: 7 @ ( [ ^: boxy ) '+++++++++|-'
>
>
> (boxy is a boolean rather than a literal result of 9!:6 because in
>
> error cases (bad y, mostly) you wind up with 11 spaces for 9!:6'',
>
> which can be confusing if you are looking for a boxed display. So this
>
> way, you could just run jwords again to recover from that state.)
>
>
> Still... this is way more complicated than something I would want to
>
> throw at a beginner (who would probably not know to reach for
>
> something named 'jwords' even if it were a builtin). So I would stick
>
> with ;:'J sentence' and maybe give them the 1{": as an alternative if
>
> they came back to me with complaints about the bulkiness of that
>
> result...
>
>
> ...
>
>
> Ok, this was *supposed* to be a quick note. Looks like I failed at that
> aspect.
>
>
> Oftentimes things that seem simple when I think about them turn out to
>
> be way more complicated when I try to express them.
>
>
> FYI,
>
>
> --
>
> Raul
>
> ----------------------------------------------------------------------
>
> 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