On Sat, Nov 5, 2011 at 10:46 AM, Alan Stebbens <[email protected]> wrote:
>> 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
>
hex=: ' ' joinstring '0123456789abcdef' <"1@:{~ 16 16 #: ]
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm