> I am trying to remove &. following these rules:
>
> NB. x u&v y ↔ (v x) u (v y)
No.
x u&:v y <-> (v x) u (v y)
x u&v y <-> x u&v"({. v b. 0) y
and
x u&.:v y <-> v^:_1 (v x) u (v y)
x u&.v y <-> x u&.:v"({. v b. 0) y
> NB. u &.v is equivalent to the composition u & v
> NB. except that the verb obverse to v is applied
> NB. to the result for each cell
> NB.(subject to the monadic rank of v)
>
> (<"1 3 4 5 ) #"0 (>"0 i.3)
> |length error
> | ( <"1 3 4 5)#"0(>"0 i.3)
The length error was not an agreement error. You tried to give 4 ranks.
You meant
(<"1 (3 4 5) ) #"0 (>"0 i.3)
Henry Rich
>
> The is one of my better tries to follow the directions.
>
> Linda
>
> -----Original Message-----
> From: [email protected] [mailto:programming-
> [email protected]] On Behalf Of Graham Parkhouse
> Sent: Thursday, January 03, 2013 3:26 AM
> To: [email protected]
> Subject: Re: [Jprogramming] Atop continues to puzzle me
>
> Subject: Re: Atop continues to puzzle me
>
>
> This post was initially titled 'The benefits of function composition'
>
> See my PS.
>
> There are things you can achieve with function composition that cannot be
> achieved so elegantly any other way:
>
> 3 4 5<@#"0 i.3
> +-----+-------+---------+
> |0 0 0|1 1 1 1|2 2 2 2 2|
> +-----+-------+---------+
>
> This is what I want - a set of 3 0s, a set of 4 1s and a set of 5 2s.
>
> This doesn't give me what I want:
>
> 3 4 5#"0 i.3
> 0 0 0 0 0
> 1 1 1 1 0
> 2 2 2 2 2
>
> Nor does this:
>
> 3 4 5 ([: <"1 #"0) i.3
> +---------+---------+---------+
> |0 0 0 0 0|1 1 1 1 0|2 2 2 2 2|
> +---------+---------+---------+
>
> But this does:
>
> each
> +--+-+
> |&.|>|
> +--+-+
> 3 4 5#"0 each i.3
> +-----+-------+---------+
> |0 0 0|1 1 1 1|2 2 2 2 2|
> +-----+-------+---------+
>
> ... but then &. is function composition.
>
> The unavoidable problem with not using function composition in such
> instances is that J turns the result from every execution of a verb into a
> rectangular array. When a series of verbs is executed in succession without
> composition, J has to produce a succession of 'properly finished' results
> along the way. With composition, this finishing process is confined to just
> once at the end of the process.
>
> ------------------------------------------------------------------------
>
> PS I wrote this before reading Linda's recent post on 'atop continues to
> puzzle me' (Wed, 02 Jan 2013 03:02:54 -0500):
>
>> Here's another, hopefully simpler, example of my problem > with @
>>
>> ]a=:?>:i.6
>>
>> 0 1 1 3 1 5
>>
>> ]a=:=a
>>
>> 1 0 0 0 0 0
>>
>> 0 1 1 0 1 0
>>
>> 0 0 0 1 0 0
>>
>> 0 0 0 0 0 1
>>
>> ]b=:?>:i.6
>>
>> 0 1 0 3 1 3
>>
>> a #@# b
>>
>> 1 3 1 1
>
> Linda, this example is another illustration of the point I have made above.
> Not using @, as you rightly suggest, we might expect
>
> # a # b
> 4
>
> not to give 4 but 1 3 1 1. But no, for the reasons I have explained above.
> a # b has to produce an intermediate rectangular result:
>
> a # b
> 0 0 0
> 1 0 1
> 3 0 0
> 3 0 0
>
> But 6 of those zeroes are padding. If J didn't have to mould that
> intermediate result it would look like
>
> 0
> 1 0 1
> 3
> 3
>
> and the tally of those is 1 3 1 1!
>
> I hope this is helpful.
>
> Regards
>
> Graham
>
>
> ----------------------------------------------------------------------
> 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