(+/ *:) 3 4
Is 
3 4 +/ *: 3 4
Is
3 4 +/ 9 16

([: +/ *:) 3 4
Is
+/ *: 3 4
Is
+/ 9 16

___________________________

David Vaughan

On 29 Oct 2011, at 08:09, "Linda Alvord" <[email protected]> wrote:

> Remove either  atop  @ or  at  @: and you get:
> 
> (+/ *:) 3 4
> 12 19
> 13 20
> 
> but when you put in  cap [: you get the result of @:  rather than  @ 
> 
>   ([:+/ *:) 3 4
> 
> 25
> 
> Linda   
> 
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Kip Murray
> Sent: Thursday, October 27, 2011 4:03 PM
> To: Programming forum
> Subject: Re: [Jprogramming] problem with under
> 
> I like especially your second form I =: ([: <  [: /: ":)"0
> 
> For the third form I =: < @ /: @ ": " 0 note that [: f g and f @: g are 
> always equivalent, but f @: g and f @ g are not when g has rank 0 -- 
> conjunction @: always uses sequential processing, but conjunction @ uses 
> parallel processing when g has rank 0, as shown below.
> 
> 
>    (+/ @: *:) 3 4
> 25
> 
>    (+/ @ *:) 3 4
> 9 16
> 
> 
> In the first case above the right to left flow chart is
> 
> 25 <-- +/ <-- 9 16 <-- *: <-- 3 4  (sequential processing)
> 
> while in the case involving @ the flow chart is
> 
>             <--  9 <-- *: <-- 3
> 9 16 <-- +/                   (parallel processing because *: is rank 0)
>             <-- 16 <-- *: <-- 4
> 
> 
> As I nearly always want sequential processing I use
> 
>    [: f [: g h   (read "the f the g h")
> 
> or
> 
>    f @: g @: h   (read math's "f o g o h")
> 
> 
> Check:
> 
>    ([: +/ *:) 3 4
> 25
> 
> 
> On 10/27/2011 5:21 AM, Raul Miller wrote:
>> Also, for the domain in question, we are not using>  for anything but its
> rank.
>> 
>> Thus we could simplify:
>> 
>>    I =: ([:<  [: /: [: ": ])"0
>> 
>> Also, since we are always using this as a monad, we could further
> simplify:
>> 
>> 
>>    I =: ([:<  [: /: ":)"0
>> 
>> Though, personally, I find myself comfortable using @
>> 
>>    I =:<@/:@":"0
>> 
>> Or, going back to the original message, and applying @ to achieve what
>> the dictionary was talking about:
>> 
>>    <@([: /: ":)@>a,b
>> 
>> Or, using "0 to replace @>
>> 
>>    <@([: /: ":)"0 a,b
>> 
>> But if you are using trains in boxes, maybe it's better to state that
>> explicitly, and that could also get rid of any of the @ conjunctions:
>> 
>>    ([: /: ":) L:0<"0 a,b
>> 
>> That said, when you replace a shorter expression with a longer one, I
>> think you should expect the longer one to lose some of the grace of
>> the original.
>> 
>> I hope this helps.
>> 
> ----------------------------------------------------------------------
> 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