/:~ (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

Reply via email to