> Something about hex and dec are making vertical lists instead of horizontal
> lists, so join gets confused.
>
> hex =: '0123456789abcdef' {~ 16 16 #: ]
> dec =: '0123456789' {~ 10 10 #: ]
>
> hex (1 2 3)
> 01
> 02
> 03
>
> Why do hex and dec make transposed lists? Can they be rewritten to not do
> this?
If hex made "horizontal lists", it would not be a list -- it would be a single
character string, without any spaces between the two string hexadecimal
representations.
Alternatively, hex could produce a box, using rank 1 to force the "horizontal"
shape.
hex =: [: < "1 hc {~ 16 16 #: ]
hex 22
┌──┐
│16│
└──┘
hex 22 23
┌──┬──┐
│16│17│
└──┴──┘
hex 22 23 24
┌──┬──┬──┐
│16│17│18│
└──┴──┴──┘
Now, if you want to catenate them, open the boxes, append a space to each, and
ravel the results, or use another "join" function as suggested previously.
,' ',"1~>hex 22+i.5
16 17 18 19 1a
Alan
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm