Several interesting solutions, thank you.

I understand the first 2 examples below:

  +:/ 1 2 3 
|domain error 

   2 */ 1 2 3 
2 4 6 

this is definitely less clear:
   2&*/ 1 2 3 
24 

I guess this comes from http://www.jsoftware.com/help/dictionary/d630n.htm 
(dyad bond):
   2 (2&*) 3 
12 

At first I hated this form as needlessly confusing, but a fantastic feature is 
that it turns ^: into a verb, and so as you have done, can apply a modifier to 
it:

   1 1 2 (2&*)"0 ]  12 2 3 
24 4 12 




----- Original Message -----
From: Aai <[email protected]>
To: [email protected]
Cc: 
Sent: Tuesday, May 13, 2014 5:01:04 AM
Subject: Re: [Jprogramming] ^: and boxes

    }. 2&*//.@(2&=,:]) 1 2 3 2 2 4 2 1
2 2 6 4 2 8 2 1


On 12-05-14 19:11, 'Pascal Jasmin' via Programming wrote:
> I'm looking for this answer, but a better way to do it.
>
>    > ({~"1 0 [: i.#) (<@:+:@>)^:(1 |. 2= ] &>)  ;/ 1 2 3 2 2 4 2 1
> 2 2 6 4 2 8 2 1
>
> the right hand side must be boxed.  Unboxing at end, just there for display.  
> Should not assume that it is possible for input.
>
> What the above is doing is if/for a cell that is equal to 2, double the 
> previous cell.
>
> To get it to work, I've had to generate a full n x n table, and then take the 
> diagonal.  Is there a better tacit way that avoids n x n table?
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

-- 
Met vriendelijke groet,
@@i = Arie Groeneveld

----------------------------------------------------------------------
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