That "check" is exactly what I want.

      I=: ([: < [: /: [: ": [: > ])"0

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


   n=: 13 :'(<([: /: ":) >{.y),<([: /: ":) >}.y'
   n a,b
----------T---------┐
│1 0 2 3 4│4 2 3 1 0│
L---------+----------

   n
([: < [: ([: /: ":) [: > {.) , [: < [: ([: /: ":) [: > }.

   5!:4 <'n'

      -- [:          
      +- <           
      │    -- [:     
  ----+    │    -- [:
  │   │    +----+- /:
  │   L----+    L- ":
  │        │         
  │        │    -- [:
  │        L----+- > 
--+             L- {.
  +- ,               
  │   -- [:          
  │   +- <           
  │   │    -- [:     
  L---+    │    -- [:
      │    +----+- /:
      L----+    L- ":
           │         
           │    -- [:
           L----+- > 
                L- }.

   

For me, that was a long way from   k  but an interesting journey.

    k
/:@":&.>

Thanks,   Linda   

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Kip Murray
Sent: Thursday, October 27, 2011 1:46 AM
To: Programming forum
Subject: Re: [Jprogramming] problem with under

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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to