Virtual blocks started in 8.07 and were finished in 9.01; not so many years.

Look at https://code.jsoftware.com/wiki/Vocabulary/SpecialCombinations#Virtual_Nouns

and

https://code.jsoftware.com/wiki/Vocabulary/SpecialCombinations#Execution_In_Place_.28EIP.29

for some rules that will save time and space, and at the rest of

https://code.jsoftware.com/wiki/Vocabulary/SpecialCombinations

for the special forms the interpreter knows about.

Henry Rich



On 5/16/2020 7:07 PM, 'Michael Day' via Programming wrote:
So have we all (mostly) been wrong over all the years in reporting, and comparing,

ts,  and the like,  to assess which is the "best" version of some verb?  We had all,

mostly?, learnt to assign the input outside the ts argument,  but that's only the

foothills, apparently.


I don't think it's just me this evening.  Seems worth a chapter or two of J wiki or

NuBenchMark or the like...


Thanks for the instructive ticking-off,

Cheers,

Mike


On 16/05/2020 23:43, bill lam wrote:
Shouldn't assignment like
b=. , a
c=. 1{a
just increase reference count of the mother instead of deep copy?


On Sun, May 17, 2020, 6:27 AM Henry Rich <[email protected]> wrote:

I wouldn't say so.  Reshape takes virtually no time/space, but boxing or
assigning the reshaped result does.  If you do something like

+/ @: (,/) y

the result of ,/ is never realized and it would be wrong to charge it
with time/space not used.

Similarly

(}. - }:) y

the }. and }: create virtual results that are never realized.

You need to expand your mental model beyond time/space for a verb, to
include time/space for realization when that becomes necessary.

Henry Rich


On 5/16/2020 1:22 PM, 'Mike Day' via Programming wrote:
Oh... so one needs to, say, assign the result to see the real t/s?

Thanks,

Mike

Sent from my iPad

On 16 May 2020, at 17:05, Henry Rich <[email protected]> wrote:

The time/space numbers are telling you that (x $ y) produces a virtual
result when it can, while (_2 ]\ y) doesn't (yet).  If you use the result immediately, the space saving is real.  If you box the result or save it in
a name, the value will be realized and the space saving will vanish.
Henry Rich

On 5/16/2020 11:14 AM, 'Michael Day' via Programming wrote:
Much neater than what I was about to offer,  unless Raoul needs to
specify the fill,
in which case,  this alternative rather minimal amendment is worth
consideration:
     ($!._ ~2,~>.@-:@#) i.7
0 1
2 3
4 5
6 _

cf

     _2]\ i.7
0 1
2 3
4 5
6 0

Also, the time and space performance _might_ be important for large
inputs:
     ts' $ _2]\ list ' [list =: i.100000
0.000618 1.04986e6
     ts'($!._ ~2,~>.@-:@#) list'
2.7e_6 2304

Cheers,

Mike

On 16/05/2020 15:57, 'Rob Hodgkinson' via Programming wrote:
You could try Infix … here with NuVoc link…
https://code.jsoftware.com/wiki/Vocabulary/bslash#dyadic

      x u\ y where x is eg _2 means apply very b to successive pairs
(_ for non-overlapping).
        _2 ]\ 1 2 3 4 5 6
1 2
3 4
5 6
        _2 ]\ 1 2 3 4 5 6 7
1 2
3 4
5 6
7 0

       _2 <\ 1 2 3 4 5 6
┌───┬───┬───┐
│1 2│3 4│5 6│
└───┴───┴───┘

HTH…/Rob

On 17 May 2020, at 12:42 am, Raoul Schorer <[email protected]>
wrote:
Hello,

I am convinced that this must be trivial, but I wasn't able to find
in the documentation how to reshape a list to a table without manually
extracting the length.
in summary, is there a more direct way of doing:

lst =. i. 6

((2,~2%~#) $ ]) lst

for a list of arbitrary length?

Thanks!

Raoul


----------------------------------------------------------------------
For information about J forums see
http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see
http://www.jsoftware.com/forums.htm
--
This email has been checked for viruses by AVG.
https://www.avg.com

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

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