On Sat, Nov 5, 2011 at 10:46 AM, Alan Stebbens <a...@stebbens.org> 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