Yes, a little tricky due to gerund binding with oblique.

If you really want a “c” for now (someone else may suggest a tacit way 
overnight) you can use explicit as here;

   c=: 4 : '(x/."1 &. |:)y’

   g=. *: ` -: `^
   y=. 3 1 0
   ] yy=.3 2$2#yy
3 3
1 1
0 0

   g c y
9 0.5 1

   g c yy
9 9
0.5 0.5
1 1

…/Rob

> On 3 May 2019, at 4:54 pm, Piet de Jong <[email protected]> wrote:
> 
> Thanks for looking at this.   The problem (or maybe I misunderstand) with 
> this solution is that there is no real “c” in the sense that 
> 
> g c y 
> 
> is the required answer.    That is 
> 
>  *:`-:`^ (/."1 &. |:)   i. 3 5
> 
> (where c is the stuff in brackets) doesn’t work.   
> 
> 
>> On 3 May 2019, at 3:58 pm, 'robert therriault' via Programming 
>> <[email protected]> wrote:
>> 
>> Hi Piet,
>> 
>> I am not sure how simple it is, but combining Rob's excellent insight on 
>> oblique with Transpose, Under and rank 1 you get this:
>> 
>>   (*:`-:`^ /.)"1 &. |: i. 3 5
>>     0       1      4      9       16
>>   2.5       3    3.5      4      4.5
>> 22026.5 59874.1 162755 442413 1.2026e6
>> 
>> The transpose works in this case because the 3 gerunds are applied to each 
>> transposed row and then Under (&.) undoes the transpose to provide the 
>> results in a shape of 3 5
>> 
>> Cheers, bob
>> 
>>> On May 2, 2019, at 10:15 PM, Piet de Jong <[email protected]> wrote:
>>> 
>>> Thanks!   But it doesn’t appear to generalise to applying successive verbs 
>>> in the gerund to successive >>items<< in y.  
>>> 
>>> (I checked the dictionary re /. and it  talks of “collections” of y.   Not 
>>> sure what that means)
>>> 
>>> For example if y is i.3 5 then I’d like the first verb in the gerund to 
>>> apply to the first item of y, the second verb to the second item, and so on.
>>> 
>>> Is there a simple solution for this?     
>>> 
>>>> On 3 May 2019, at 12:35 pm, 'Rob Hodgkinson' via Programming 
>>>> <[email protected]> wrote:
>>>> 
>>>> Hi Piet, not ignorant at all !
>>>> 
>>>> Try using oblique (an obscure feature is that the u in u/. can be a 
>>>> gerund, in which case it is evoked cell wise);
>>>> 
>>>> g=. *: ` -: `^
>>>> y=. 3 1 0
>>>> g /. y
>>>> 9
>>>> 0.5
>>>> 1
>>>> 
>>>> Found in Section 15 of https://www.jsoftware.com/books/pdf/brief.pdf 
>>>> <https://www.jsoftware.com/books/pdf/brief.pdf>.
>>>> 
>>>> HTH, Regards Rob
>>>> 
>>>>> On 3 May 2019, at 10:59 am, pietdion <[email protected]> wrote:
>>>>> 
>>>>> Hopefully not an ignorant question.
>>>>> 
>>>>> Am looking for a simple (tacit, non complicated) construction (verb?
>>>>> adverb? conjunction?) “c" that takes a gerund and applies the successive
>>>>> verbs in the gerund to successive items.
>>>>> 
>>>>> A simple example is
>>>>> 
>>>>> g=. *: ` -: `^
>>>>> y=. 3 1 0
>>>>> g  c  y
>>>>> 9  0.5  1
>>>>> 
>>>>> What “c”  achieves this for arbitrary gerunds g's and y’s?
>>>>> 
>>>>> I realise this can be done in a variety of explicit ways and  with the
>>>>> agenda construct.    All I can come up with is intricate constructions.
>>>>> Looking for something simple and direct.   Seems to have a lot of uses.
>>>>> ----------------------------------------------------------------------
>>>>> 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