About beauty, Marshall's third definition below can be written
I =: ([: < [: /: [: ": [: > ])"0
The cap [: is an "identity element" in this context -- you can "ignore
it right to left" to see a chain of verbs
< /: ": > ]
which are applied right to left.
(The "0 means the chain is applied separately to each scalar in the
argument.)
Ken's invention of a new identity element at first meets the mental
resistance 0 met when it was invented, then [: becomes a thing of
beauty: [: f g means a chain of verbs f g which are applied right to
left as in
([: f g) y is f g y and x ([: f g) y is f x g y
Checking,
I 10123,32110
+---------+---------+
|1 0 2 3 4|4 2 3 1 0|
+---------+---------+
< /: ": > ] 10123
+---------+
|1 0 2 3 4|
+---------+
< /: ": > ] 32110
+---------+
|4 2 3 1 0|
+---------+
To see the beauty, learn to see the chain without the "identity element"
[: and remember right to left application. [: means "chain".
On 10/26/2011 10:36 PM, Linda Alvord wrote:
> I guess I learned APL when you essentially applied verbs from right to left.
> When you use extensive use of @ you seem to loose some of the beauty of the
> simplicity of understanding.
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Marshall Lochbaum
> Sent: Wednesday, October 26, 2011 11:14 PM
> To: Programming forum
> Subject: Re: [Jprogramming] problem with under
>
> You can use&.: and simply make the verb rank 0 (which is the rank of>),
> and then expand that to an expression using @: . However,&.> is an idiom
> that is really useful (it's the analogue of "_1 for arrays of boxes), so
> your code will be shorter and clearer if you learn to use it.
>
> I =: ([:/:":)&.>
> I =: ([:/:":)&.:> "0
> I =:< @: ([:/:":) @:> "0
>
> These give some equivalent forms for&.> , using adverb trains:
> &.>
> (&.:>) ("0)
> (<@:) (@:>) "0
>
> One helpful way to think about it is to consider arrays of boxes, where&.>
> simply does the verb inside each box:
> <"0 i.10
> --T-T-T-T-T-T-T-T-T-┐
> │0│1│2│3│4│5│6│7│8│9│
> L-+-+-+-+-+-+-+-+-+--
> >:&.> <"0 i.10
> --T-T-T-T-T-T-T-T-T--┐
> │1│2│3│4│5│6│7│8│9│10│
> L-+-+-+-+-+-+-+-+-+---
>
> Now when the argument is not boxed, open does nothing, but it has rank zero,
> so it still only works on atoms. Thus one way to think of it is that each
> atom of the argument is in its own virtual box before application, and then
> evaluation goes as show above.
>
> Marshall
>
> 2011/10/26 Linda Alvord<[email protected]>
>
>> Somehow I didn't make my purpose very clear. I was trying to get a simple
>> expression for l that didn't use&. And thought it should be possible
>> from the definition in the dictionary. Can anyone provide a tacit
>> definition without&. Thanks. Linda
>>
>>
>> u&.v is u&.:v"({. v b. 0)
>>
>> a=: 10123
>> b=: 32110
>> l=:([:/: ":)&.>
>> l a,
>> ----------T---------┐
>> │1 0 2 3 4│4 2 3 1 0│
>> L---------+----------
>>
>> m=:([:/:":)&.:>"({.> b. 0)
>> m
>> ([: /: ": )&.:>"({.> b, 0)
>>
>> m a,b
>> ----------T---------┐
>> │1 0 2 3 4│4 2 3 1 0│
>> L---------+----------
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Henry Rich
>> Sent: Wednesday, October 26, 2011 9:28 PM
>> To: Programming forum
>> Subject: Re: [Jprogramming] problem with under
>>
>> Different people have different standards of acceptable rigor, I reckon.
>> To me, the context isn't enough to overcome the inaccuracy of the
>> statement.
>>
>> FWIW, in my first post on this I had originally typed 'wrong' and
>> replaced it with 'misleading', following much the train of thought you
>> have offered. I still think Ye Dic is wrong; but I'm dead certain it is
>> misleading.
>>
>> I think the current language is a holdover from the days before&.: .
>> Now I can say that
>>
>> u&.v is u&.:v"({. v b. 0)
>>
>> but back then there was no notation for that idea, and the Dictionary
>> just came close and was content. I think readers deserve better now.
>>
>> Henry Rich
>>
>> On 10/26/2011 9:09 PM, Raul Miller wrote:
>>> On Wed, Oct 26, 2011 at 5:52 PM, Henry Rich<[email protected]>
>> wrote:
>>>> I think it's fair to say the Dictionary is misleading because
>>>>
>>>> a. it contains a line that is not true;
>>>
>>> It's only "not true" when taken out of context -- you have to (a)
>>> ignore preceding material, and then (b) generalize a remaining
>>> statement and believe it covers the case treated by that preceding
>>> material
>>>
>>> This is somewhat like saying that a dictionary is wrong for claiming
>>> that "light" means "not weighing much" because someone who was not a
>>> native speaker was confused because they needed to treat a context
>>> having to do with illumination.
>>>
>>> It's only wrong if you overgeneralize.
>>>
>> ----------------------------------------------------------------------
>> 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