[Jprogramming] special coding for stack operations
Dan Bron
jf at dbron.net
Fri Jul 14 03:22:29 HKT 2006
>Hmm, doing name=: p{name in O(1) space and O(n) time
Since you can do name=:name,new_data in O(1) space it is possible to do name =: new_data , name in O(1) space and O(n) time.
The idea is to "shift in" the new data. That is, append the data using the optimized appending code, then rotate the array by >:#new_data .
name =: 'abcd'
name =: name , '123' NB. O(1)
name =: 4 |. name NB. 4 -: >: # '123'
name
123abcd
I don't know how this scheme compares to the current implementation. I suspect that's a question which must be answered empirically.
If the scheme is superior, I suggest special casing each of:
name =: name , new_data
name =: name ,~ new_data
name =: new_data , name
name =: new_data ,~ name
-Dan
More information about the Programming
mailing list