It might be that in retrospect, an LSB-approach to #: would have been more
in the spirit of J.  It would have allowed us to give the monad #: its
proper rank of zero, for example.

.. that said, it works against the grain of "most important information
first", as expressed in our usual left-to-right positional numeral system.
For example, would we be satisfied with results like these?

           10 10 10 #: 123    NB. 3 units, 2 tens, 1 hundred
        3 2 1   

           24 60 60 #: 27001  NB. 1 second, 30 minutes, 7 days
        1 30 7

Sometimes, J has to make compromises with established usage (viz, % and e.
).


-Dan 

-----Original Message-----
From: programming-boun...@jsoftware.com
[mailto:programming-boun...@jsoftware.com] On Behalf Of Raul Miller
Sent: Tuesday, December 13, 2011 10:22 AM
To: Programming forum
Subject: Re: [Jprogramming] How #: should have been designed

After some thought, I am in favor of this version (I think first
proposed by Henry):

   ((* * <&0) ,. #:) i:3
_1 0 1
_1 1 0
_1 1 1
 0 0 0
 0 0 1
 0 1 0
 0 1 1
   #. ((* * <&0) ,. #:) i:3
_3 _2 _1 0 1 2 3

Note also:
   2 | ((* * >&0) ,. #:) i:3
0 0 1
0 1 0
0 1 1
0 0 0
1 0 1
1 1 0
1 1 1

That said this could be further "improved" by making the #: result
follow the p. result pattern (least significant bit first):

   (|.@#: ,. * * <&0) i:3
1 1 _1
1 0 _1
0 1 _1
0 0  0
1 1  0
1 0  0
0 1  0
   (|.@#: , * * <&0)"0 i:3
1  0 _1
0  1 _1
1 _1  0
0  0  0
1  0  0
0  1  0
1  1  0
   #.@|. :(#. |.)"1 (|.@#: ,. * * <&0) i:3
_1 _3 _2 0 3 1 2
   #.@|. :(#. |.)"1 (|.@#: , * * <&0)"0 i:3
_3 _2 _1 0 1 2 3
   2 p.~ (|.@#: , * * <&0)"0 i:3
_3 _2 _1 0 1 2 3


-- 
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

Reply via email to