label=: 4 : '(x;{.t),:(":,.i.#y);}.t=. ":(i.{:$y),y'
] zz=: 4 5 ?...@$ 20
6 15 19 12 14
19 0 17 0 14
6 18 13 18 11
12 18 0 10 2
'Foo' label zz
+---+--------------+
|Foo| 0 1 2 3 4|
+---+--------------+
|0 | 6 15 19 12 14|
|1 |19 0 17 0 14|
|2 | 6 18 13 18 11|
|3 |12 18 0 10 2|
+---+--------------+
----- Original Message -----
From: Ian Clark <[email protected]>
Date: Monday, November 16, 2009 16:16
Subject: [Jprogramming] labelling a table
To: Programming forum <[email protected]>
> Suppose I have an arbitrary table, eg
>
> zz
> 1 2 3 4 5
> 2 3 1 8 10
> 3 1 2 12 15
> 4 8 12 6 2
> 5 10 15 2 7
>
> what's a slick way of displaying it boxed and labelled, like
> this? ...
>
> +-+-------------+
> |s|0 1 2 3 4|
> +-+-------------+
> |0|1 2 3 4 5|
> |1|2 3 1 8 10|
> |2|3 1 2 12 15|
> |3|4 8 12 6 2|
> |4|5 10 15 2 7|
> +-+-------------+
>
> Sorry to be lazy. It would do me good to work it out for myself, but
> I'm pressed for time. Needed for APWJ. The best I can come up
> with so
> far is this:
>
> s=: 4 : '(<x;<y) { zz'
> s table i.5
> ...
>
> Ian
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm