Oh, maybe I was not clear enough, the verb,

cj=. <:@:#@:((([ + (- (_ * 0 > ]))@:[ { ]) ; >:@{`[`]})&>/ ::]^:a:@(0&;))

is meant to be a patched version of your original verb based on the form
^:a:,

             (([ +                    {  ) ; >:@{`[`]})&>/ ::]^:a:@(0&;)

and it seems to produce the same number of jumps answers as those produced
by,

((1+0&{::);((+_*0>])@([+{);>:@{`[`]})&>/@}.) ::]^:(_)

for a couple of examples; namely,

   cj 0 3 0 1 _3
5
   cj 0 _2 0 0
3

vis-a-vis

    ((1+0&{::);((+_*0>])@([+{);>:@{`[`]})&>/@}.) ::]^:(_) 0;0;0 3 0 1 _3
┌─┬─┬──────────┐
│5│5│2 5 0 1 _2│
└─┴─┴──────────┘
    ((1+0&{::);((+_*0>])@([+{);>:@{`[`]})&>/@}.) ::]^:(_) 0;0;0 _2 0 0
┌─┬─┬────────┐
│3│_│2 _1 0 0│
└─┴─┴────────┘

I thought the exercise was just to find the number of jumps...  Is it not?

Perhaps I am still making more noise :)



On Thu, Dec 7, 2017 at 2:19 PM, Arie Groeneveld <[email protected]>
wrote:

>
>
> Op 07-12-17 om 18:27 schreef Jose Mario Quintana:
>
>> I really do not know exactly what the original was doing, or what the task
>> really is, but if the issue was that negative indices are valid for { then
>> replacing it by (- (_ * 0 > ]))@:[ { ] should do the trick.
>>
>
> kind of, so forcing the index to plus infinite will do the job:
>
>    ((1+0&{::);((+_*0>])@([+{);>:@{`[`]})&>/@}.) ::]^:(_) 0;0;0 _2 0 0
> ┌─┬─┬────────┐
> │3│_│2 _1 0 0│
> └─┴─┴────────┘
>
>
>    Moreover,
>> counting the jumps in this context seems to be the number of the resulting
>> items minus one; thus,
>>
> no, not for this task. It destroys my J session. So I need a counter.
>
>
>
> ----------------------------------------------------------------------
> 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