How about both?
h=: 13 :'i.>:|-/y'
1 _1(*"0 1)3 _7+/ h 3 7
3 4 5 6 7
7 6 5 4 3
Linda
Sent from AOL Mobile Mail
On Friday, April 6, 2018 Devon McCormick <[email protected]> wrote:
Hi - I'm working with selecting sequential items from a vector given a starting
and an ending point as a pair of integers. If we assume we always get the pair
as (lesser, greater), something like this suffices: seq=: {. + [: i. [: >: -~/
seq 3 7 3 4 5 6 7 However, if our assumption about the order of our points is
violated, we get nonsense: seq 7 3 7 8 9 Just for robustness, how could we
write a version of "seq" that would return the sequence in reverse order in
this latter case, i.e. give the proper sequence from seven to three: 7 6 5 4 3
? I generalized the "seq" verb to remove the ordering assumption: my idea was
to generate the ascending sequence, then flip it if >/y is true. I tried this
with "agenda" but am not sure how to get it to work on one thing - the
ascending vector - on the basis of comparison of another thing - the pair of
integers. I did achieve this using the "power" conjunction: seq=: 3 :
'|.^:(>/y)](<./ + [: i. [: >: >./ - <./) y' seq 3 7 3 4 5 6 7 seq 7 3 7 6 5 4 3
Does anyone have any ideas for a more elegant, preferably tacit, solution?
Thanks, Devon -- Devon McCormick, CFA Quantitative Consultant
---------------------------------------------------------------------- For
information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm