Roger wrote:
> The bar is higher for prepend/append in-place.

OK, but since

           name=: x,name

is logically equivalent to:

           name=: name,x          O(1) space, O(1) time
           name=: i A. name       O(1) space, O(1) time

for some  i  , then all that remains is to discover a function  foo  such that:
 

           name ((A.~ foo) -: (|.~ >:)) #x

and we can have prepend-in-place in  O(1) space, O(1) time.  My brief 
investigations have led to no obvious definition of  foo  .  

Here's a table of the first few required outputs of  foo  , where the 
horizontal axis is  (#name)  and the vertical is  (#x)  :

           A.@:(|. i.)"0 table~  i. 10
        +-------------+-----------------------------------+
        |A.@:(|. i.)"0|0 1 2 3  4  5   6    7     8      9|
        +-------------+-----------------------------------+
        |0            |0 0 0 0  0  0   0    0     0      0|
        |1            |0 0 1 3  9 33 153  873  5913  46233|
        |2            |0 0 0 4 16 64 304 1744 11824  92464|
        |3            |0 0 1 0 18 90 450 2610 17730 138690|
        |4            |0 0 0 3  0 96 576 3456 23616 184896|
        |5            |0 0 1 4  9  0 600 4200 29400 231000|
        |6            |0 0 0 0 16 33   0 4320 34560 276480|
        |7            |0 0 1 3 18 64 153    0 35280 317520|
        |8            |0 0 0 4  0 90 304  873     0 322560|
        |9            |0 0 1 0  9 96 450 1744  5913      0|
        +-------------+-----------------------------------+

-Dan

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to