/:~ (0 5 10 15 I. a) </. a ┌─────────┬──────────┬──────────────┬──────────────┐ │1 2 3 4 5│6 7 8 9 10│11 12 13 14 15│16 17 18 19 20│ └─────────┴──────────┴──────────────┴──────────────┘
But that is a more boring (and perhaps less useful) result... > On 2017Sep 24, at 12:57, Skip Cave <s...@caveconsulting.com> wrote: > > Jimmy G said: > > With key /. and < > > (0 5 10 15 I. a) </. a > > <<<>>> > > a > > 9 12 2 20 14 11 13 15 7 5 3 19 8 1 4 16 10 6 18 17 > > > (0 5 10 15 I. a) </. a > > ┌──────────┬──────────────┬─────────┬──────────────┐ > > │9 7 8 10 6│12 14 11 13 15│2 5 3 1 4│20 19 16 18 17│ > > └──────────┴──────────────┴─────────┴──────────────┘ > > > So Jimmy's solution does box the ranges, but the ranges are not in the > range order specified by the left argument. Why? And how can you create a > verb that will keep the ranges in ascending order? > > > > Skip Cave > Cave Consulting LLC > > On Sun, Sep 24, 2017 at 2:37 PM, Jimmy Gauvin <jimmy.gau...@gmail.com> > wrote: > >> With key /. and < >> >> (0 5 10 15 I. a) </. a >> >> you can also count them >> >> (0 5 10 15 I. a) #/. a >> >> >> On Sun, Sep 24, 2017 at 3:19 PM, Skip Cave <s...@caveconsulting.com> >> wrote: >> >>> So that brings up another interesting problem. How >>> to >>> box ranges >>> ? >>> : >>> >>> ]a=:>:?~20 >>> 9 12 2 20 14 11 13 15 7 5 3 19 8 1 4 16 10 6 18 17 >>> >>> 0 5 10 15 brng a >>> ┌─────────┬──────────┬──────────────┬──────────────┐ >>> │2 5 3 1 4│9 7 8 10 6│12 14 11 13 15│20 19 16 18 17│ >>> └─────────┴──────────┴──────────────┴──────────────┘ >>> >>> S >>> o how do you construct brng? >>> >>> Skip Cave >>> Cave Consulting LLC >>> >>> On Sun, Sep 24, 2017 at 2:09 PM, 'Mike Day' via Programming < >>> programm...@jsoftware.com> wrote: >>> >>>> I was about to send something when we had to go out for a bit... >>>> >>>> My best so far is >>>> ((] #~ 1 = I.)~ (0 _1 + ])) ~ >>>> assuming I've copied it correctly... >>>> >>>> Mike >>>> >>>> Please reply to mike_liz....@tiscali.co.uk. >>>> Sent from my iPad >>>> >>>>> On 24 Sep 2017, at 18:45, Skip Cave <s...@caveconsulting.com> wrote: >>>>> >>>>> Marshall, >>>>> >>>>> Wow! that is neat! I hadn't really understood dyadic I. but this >> forced >>>> me >>>>> to try to understand it: >>>>> >>>>> 8 100 (]#~1=I.) 2 10 45 300 >>>>> >>>>> 10 45 >>>>> >>>>> 8 100 I. 2 10 45 300 >>>>> >>>>> 0 1 1 2 >>>>> >>>>> 1 = 8 100 I. 2 10 45 300 >>>>> >>>>> 0 1 1 0 >>>>> >>>>> (1 = 8 100 I. 2 10 45 300) # 2 10 45 300 >>>>> >>>>> 10 45 >>>>> >>>>> 8 100 I. 2 10 45 300 >>>>> >>>>> 0 1 1 2 >>>>> >>>>> 1 8 100 I. 2 10 45 300 >>>>> >>>>> 1 2 2 3 >>>>> >>>>> 1 8 100 I. 2 10 45 300 450 >>>>> >>>>> 1 2 2 3 3 >>>>> >>>>> 1 8 100 350 I. 2 10 45 300 450 >>>>> >>>>> 1 2 2 3 4 >>>>> >>>>> 1 8 100 350 I. 300 2 45 10 450 >>>>> >>>>> 3 1 2 2 4 >>>>> >>>>> So now I'm getting a feel for I. Reading the terse Vocabulary >>> description >>>>> of dyadic I. didn't help much in making the I. functionality clear, >> at >>>>> least for me. The NuVoc description wasn't much more helpful, but the >>>>> examples after the description in Nuvoc cleared things up >> considerably. >>>>> >>>>> Also, the dissect tool was very helpful in figuring out how J parsed >>> the >>>>> whole dyadic verb. Who is the author of the dissect tool? That's a >>> great >>>>> help in learning J. >>>>> >>>>> Skip >>>>> >>>>> Skip Cave >>>>> Cave Consulting LLC >>>>> >>>>> On Sun, Sep 24, 2017 at 3:14 AM, Marshall Lochbaum < >>> mwlochb...@gmail.com >>>>> >>>>> wrote: >>>>> >>>>>> Try >>>>>> >>>>>> rng =: ] #~ 1=I. >>>>>> >>>>>> it's about half as fast because I. is not very well-optimized. >>>>>> >>>>>> Marshall >>>>>> >>>>>>> On Sun, Sep 24, 2017 at 02:29:31AM -0500, Skip Cave wrote: >>>>>>> Here's a function I came up with to select numbers in a vector >> which >>>> are >>>>>>> within some range. >>>>>>> >>>>>>> Find all the numbers between 10 & 100 in a set of random numbers >>> from 0 >>>>>> to >>>>>>> 200: >>>>>>> >>>>>>> >>>>>>> rng =. 4 : '((({.x)</y)*.(({:x)>/y))#y' >>>>>>> >>>>>>> >>>>>>> 10 100 rng ?50$200 >>>>>>> >>>>>>> 89 91 32 85 84 27 31 20 28 66 96 93 22 85 39 97 82 35 90 67 34 35 >> 67 >>> 95 >>>>>> 50 >>>>>>> >>>>>>> >>>>>>> Between 120 & 180: >>>>>>> >>>>>>> >>>>>>> 120 180 rng ?50$200 >>>>>>> >>>>>>> 148 163 133 165 150 178 121 146 161 179 >>>>>>> >>>>>>> >>>>>>> Is there a more concise/efficient way to select numbers in a range? >>>>>>> >>>>>>> Skip Cave >>>>>>> Cave Consulting LLC >>>>>>> ------------------------------------------------------------ >>> ---------- >>>>>>> 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 >>> >> ---------------------------------------------------------------------- >> 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