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