Look into ];.0 Henry Rich

On 4/6/2018 3:23 PM, Devon McCormick 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

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