Raul,  Here's what you wrote.  I didn't understand the parentheses.
        
   a=:%
   l=:i.3
   t=:i:3
   
   f=: 1 :(':';'x u /y')
   l a f t
        0    0  0 0 0   0        0
_0.333333 _0.5 _1 _ 1 0.5 0.333333
_0.666667   _1 _2 _ 2   1 0.666667
   
So I wrote function which also works and I also don't understand it.


   g=: 1 :A=:':';'x u /y'
   l a g t
        0    0  0 0 0   0        0
_0.333333 _0.5 _1 _ 1 0.5 0.333333
_0.666667   _1 _2 _ 2   1 0.666667
   

If I remove   A=:  it no longer works!  What is happening here to make g work 
correctly AND h fail?

   h=: 1 :':';'x u /y'
|syntax error: scriptd
|   h=:    1 :':';'x u /y'
|[-10] c:\users\owner\j801-user\temp\114.ijs
   
Linda

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Raul Miller
Sent: Thursday, December 05, 2013 10:37 AM
To: Programming forum
Subject: Re: [Jprogramming] Times Table Therapy

Let's think about this definition:
   g=: 1 :'":y,x a f y'

This explicit definition uses the names x and y but does not use the names m, 
n, u or v.

This means that x and y take on "parse time roles". This is a legacy from an 
earlier stage of J development.

In other words, in the sentence
   1 g a t
is equivalent to the sentence
   (1 g) a t
and:
x has the value 1
y is undefined (because g is an adverb and not a conjunction).

J then tries to find the value of (1 g) and if that result were a verb it would 
get the value of (a t).

However, as you can see from the error message, y had no value.

I think you probably should replace x with u, since u is the left argument to 
an adverb or conjunction which can be a verb. Once you use u (or m or n or v) x 
and y indicate that you are building an explicit verb and y will take on the 
value of the right argument to that verb when it is executed.

Does this help?

Thanks,

--
Raul

On Wed, Dec 4, 2013 at 9:59 PM, Linda Alvord <[email protected]> wrote:
> Raul,  Both  f  and  f2  are very strange definitions. However both give the 
> desired result.
>
>    a=:%
>    l=:i.3
>    t=:i:
>    f=: 1 :(':';'x u /y')
>    l a f t
>         0    0  0 0 0   0        0
> _0.333333 _0.5 _1 _ 1 0.5 0.333333
> _0.666667   _1 _2 _ 2   1 0.666667
>
>    f2=: 1 :A=:':';'x u /y'
>    l a f2 t
>         0    0  0 0 0   0        0
> _0.333333 _0.5 _1 _ 1 0.5 0.333333
> _0.666667   _1 _2 _ 2   1 0.666667
>
>    (l a f t)-:l a f2 t
> 1
>
>
> But they do not seem to allow me to continue and use them in a second 
> function.
>
>
>    g=: 1 :'":y,x a f y'
>    l g a t
> |value error: y
> |   ":y,x a f     y
>
>   g2=: 1 :'":y,x a f2 y'
>    l a g2 t
> |value error: y
> |   ":y,x a f2     y
>
>  Is there some way to continue...
>
> Linda
>
> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Raul 
> Miller
> Sent: Tuesday, December 03, 2013 10:49 PM
> To: Programming forum
> Subject: Re: [Jprogramming] Times Table Therapy
>
> g=: 1 :(':';'x u /y')
>
> Without the ':' the verb %g is a monad.
>
> Thanks,
>
> --
> Raul
>
> On Tue, Dec 3, 2013 at 10:20 PM, Linda Alvord <[email protected]> wrote:
>> Raul,  We've been moving for the last several weeks and I haven't studied 
>> this yet.
>>
>> It seems odd that f is so simple and g is impossible.
>>
>>    f=: 1 :'y u / y'
>>    a=:%
>>    a f i.4
>> 0 0   0        0
>> _ 1 0.5 0.333333
>> _ 2   1 0.666667
>> _ 3 1.5        1
>>
>>    (i.3)%/i:3
>>         0    0  0 0 0   0        0
>> _0.333333 _0.5 _1 _ 1 0.5 0.333333
>> _0.666667   _1 _2 _ 2   1 0.666667
>>
>>    g=: 1 :'x u /y'
>>    (i.3) a g i:3
>> |domain error: scriptd
>> |   (i.3)    a g i:3
>> |[-17] c:\users\owner\j801-user\temp\113.ijs
>>
>> Is there an easy way to write  g ?
>>
>> Linda
>>
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Raul 
>> Miller
>> Sent: Friday, November 15, 2013 7:32 AM
>> To: Programming forum
>> Subject: Re: [Jprogramming] Times Table Therapy
>>
>> & is compose here
>> http://www.jsoftware.com/help/dictionary/d630v.htm
>>
>> `:6 is evoke gerund as a train
>> http://www.jsoftware.com/help/dictionary/d612.htm
>>
>> the following / is outer product (or "table") 
>> http://www.jsoftware.com/help/dictionary/d420.htm
>>
>> I imagine you are already familiar with that one?
>>
>> Here's my session from when I wrote that, along with some notes on my 
>> thinking. I am including my mistaken experiments. I think this took me 
>> between fifteen minutes and half an hour, but I did not time it so I do not 
>> know for sure.
>>
>> First, I wanted to make sure that the thing worked, so I did a literal copy 
>> and paste of your definition of T and then I pasted in the values to try to 
>> make it work.
>>
>>   T=: 1 
>> :'(,.(<":u),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(":,>{.y),(u,,''/''),":,>}.y'
>>    '%' 1 
>> :'(,.(<":u),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(":,>{.y),(u,,''/''),":,>}.y'
>> (i.3);i:3
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Next, I started introducing small changes. I wanted to make sure that 
>> I understood what you wrote and sometimes the easiest way of doing 
>> that is finding equivalent expressions. And the easiest way there 
>> sometimes is to make small changes that seem equivalent. I also 
>> wanted a shorter expression so that I did not have so much code to 
>> think about. (I prefer to think in transformations of data, and a lot 
>> of steps might be easy to write but reading?)
>>
>> The first thing I did was change ,>}.y on the right to >{:y. Using }.
>> on the pair leaves an extra leading dimension (1) which you eliminate 
>> through , so why not just use {: and avoid it?
>>
>>    '%' 1 
>> :'(,.(<":u),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(":,>{.y),(u,,''/''),":>{:y'
>> (i.3);i:3
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> The next thing I did was remove the ravel of the rightmost '/' - it is 
>> getting appended to '%' and '%/' is already rank 1.
>>
>>    '%' 1 
>> :'(,.(<":u),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(":,>{.y),(u,''/''),":>{:y'
>> (i.3);i:3
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Next I changed u to m. u can be a verb and this code assumes you are using a 
>> noun.
>>
>>    '%' 1 
>> :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(":,>{.y),(m,''/''),":>{:y'
>> (i.3);i:3
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Next, I wanted to evoke the verb named in m. There's a 128!: foreign which I 
>> probably should have used, but I was not sure if ~ could be used on a 
>> primitive like this.
>>
>>    '%' 1 :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(>{.y)(m~/)>{:y'
>> (i.3);i:3
>> |ill-formed name
>> |   (,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(>{.y)(    m~/)>{:y
>>
>> No. So, ok, let's box it and use evoke gerund:
>>
>>    '%' 1 
>> :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(>{.y)((<m)`:6/)>{:y'
>> (i.3);i:3
>> |domain error
>> |   (,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),    ".(>{.y)((<m)`:6/)>{:y
>>
>> Oops, I am computing a numeric result, so the ". has to go.
>>
>>    '%' 1 
>> :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),(>{.y)((<m)`:6/)>{:y'
>> (i.3);i:3
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Now let's try cleaning it up, using an outer product instead of taking apart 
>> boxes individually.
>>
>>    '%' 1 :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),((<m)`:6/)&>/>y'
>> (i.3);i:3
>> ┌─┬──────────────────┐
>> │%│_3   _2 _1 0 1 2 3│
>> ├─┼──────────────────┤
>> │0│0 _0.5 _2 0 0 0 0 │
>> │1│                  │
>> │2│                  │
>> └─┴──────────────────┘
>>
>> Oops, I need to compose unbox with the outer product, so that leads us to 
>> the /&> part you were asking about.
>>
>>    '%' 1 :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),((<m)`:6/)&>/y'
>> (i.3);i:3
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Now I can also get rid of the (>}.y), by putting a [, inside my outer 
>> product verb. (This is wrong, by the way - can you see my mistake?)
>>
>>    '%' 1 :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.[A=:([,(<m)`:6/)&>/y' 
>> (i.3);i:3 ┌─┬──────────────────────────────────┐
>> │%│        0    1  2 0 0   0        0│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Now let's get rid of the [ to the left of A=: since it is doing nothing 
>> useful for us.
>>
>>    '%' 1 :'(,.(<":m),<":,.>{.y),.(<{.":A),:<}.A=:([,(<m)`:6/)&>/y' (i.3);i:3 
>> ┌─┬──────────────────────────────────┐
>> │%│        0    1  2 0 0   0        0│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Now let's clean up the manipulations on the left side of A which build those 
>> labels. I basically want the first row of A in a separate box from the rest 
>> of A, right?
>>
>>    '%' 1 :'(,.(<":m),<":,.>{.y),.({.,:&<}.)A=:([,(<m)`:6/)&>/y' (i.3);i:3 
>> ┌─┬──────────────────────────────────┐
>> │%│0 1 2 0 0 0 0                     │
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Uh... right about here, I notice that I've messed things up. My top row is 
>> just wrong. So let's abandon the above line of thought and just try making a 
>> table that contains the top row and left column. I can't use '%' here but I 
>> am just trying to untangle my thoughts, so I'll use a 0 for now until I have 
>> figured out how to manipulate the rest of the data.
>>
>>    '%' 1 :'(0,>{:y),([,(<m)`:6/)&>/y' (i.3);i:3
>>         0   _3 _2 _1 0   1        2 3
>>         0    1  2  0 0   0        0 0
>>         0    0  0  0 0   0        0 0
>> _0.333333 _0.5 _1  _ 1 0.5 0.333333 0
>> _0.666667   _1 _2  _ 2   1 0.666667 0
>>
>> Ok, that is wrong because I have no leftmost column and I have two label 
>> rows on top. Right about here, I noticed that I should have been using ], 
>> inside my outer product, instead of [, (I want the contents of the righthand 
>> box not the lefthand box).
>>
>>    '%' 1 :'(0,>{.y),(],(<m)`:6/)&>/y' (i.3);i:3
>>         0    0  1 2 0   0        0
>>        _3   _2 _1 0 1   2        3
>>         0    0  0 0 0   0        0
>> _0.333333 _0.5 _1 _ 1 0.5 0.333333
>> _0.666667   _1 _2 _ 2   1 0.666667
>>
>> Here, I have reversed my two label columns. I think here I noticed that my 
>> left column is going on top instead of on the left. Rather than reason about 
>> that, I simplify my expression further and ignore the leftmost column for a 
>> moment. (It's easier to just perform experiments and glance at them than it 
>> is to think things through.
>> Probably not the smartest technique, but do not accuse me of being 
>> smart and we will be ok.)
>>
>>    '%' 1 :'(],(<m)`:6/)&>/y' (i.3);i:3
>>        _3   _2 _1 0 1   2        3
>>         0    0  0 0 0   0        0
>> _0.333333 _0.5 _1 _ 1 0.5 0.333333
>> _0.666667   _1 _2 _ 2   1 0.666667
>>
>> Good. Here I have the table I want (without the boxes and without the left 
>> column). So let's grab out the boxes:
>>
>>    '%' 1 :'({.;}.)(],(<m)`:6/)&>/y' (i.3);i:3 
>> ┌────────────────┬──────────────────────────────────┐
>> │_3 _2 _1 0 1 2 3│        0    0  0 0 0   0        0│
>> │                │_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │                │_0.666667   _1 _2 _ 2   1 0.666667│
>> └────────────────┴──────────────────────────────────┘
>>
>> Good enough? Not quite but I have not noticed that yet, so let's add the 
>> left column.
>>
>>    '%' 1 :'(m;,.>{.y),.({.;}.)(],(<m)`:6/)&>/y' (i.3);i:3 
>> ┌─┬──────────────────────────────────┐
>> │%│_3 _2 _1 0 1 2 3                  │
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Oh, right, I need to format the top row or it will not retain spacing 
>> when separated from the bottom row
>>
>>    '%' 1 :'(m;,.>{.y),.({.;}.)":(],(<m)`:6/)&>/y' (i.3);i:3 
>> ┌─┬──────────────────────────────────┐
>> │%│       _3   _2 _1 0 1   2        3│
>> ├─┼──────────────────────────────────┤
>> │0│        0    0  0 0 0   0        0│
>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>> └─┴──────────────────────────────────┘
>>
>> Done.
>>
>> For this case I did not need to format the bottom right box, but in obscure 
>> irrelevant cases that might be a good idea (like imagine the top row was 0 
>> 0.5 1 1.5 2 and the left column was 0 2 4 and the value for m was '*').
>>
>> That said, I should probably have instead used
>>    '%' 1 :'(m;,.>{.y),.({.;}.)":(''(],('',m,'')/)&>/'')128!:2 y'
>> (i.3);i:3
>>
>> Because it makes more sense to think of m as a string representing a verb 
>> than it does to think of m as representing an unboxed gerund.
>>
>> Thanks,
>>
>> --
>> Raul
>>
>> On Fri, Nov 15, 2013 at 2:28 AM, Linda Alvord <[email protected]> 
>> wrote:
>>>  What definition of  &  is applied here?
>>>
>>>    s=: 4 :'(],(<x)`:6/)&>/y'
>>>    '%' s (i.3);i:3
>>>        _3   _2 _1 0 1   2        3
>>>         0    0  0 0 0   0        0
>>> _0.333333 _0.5 _1 _ 1 0.5 0.333333
>>> _0.666667   _1 _2 _ 2   1 0.666667
>>>
>>> How does it work?  I did find an explanation for  `6/ but I can't find it 
>>> again.
>>>
>>> Linda
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]] On Behalf Of Raul 
>>> Miller
>>> Sent: Wednesday, November 13, 2013 7:38 AM
>>> To: Programming forum
>>> Subject: Re: [Jprogramming] Times Table Therapy
>>>
>>> Would
>>>    '%' 1 :'(m;,.>{.y),.({.;}.)":(],(<m)`:6/)&>/y' (i.3);i:3 or
>>>
>>>    '%' 4 :'(x;,.>{.y),.({.;}.)":(],(<x)`:6/)&>/y' (i.3);i:3
>>>
>>>
>>> be acceptable?
>>>
>>> The part to the right of the ": is essentially the same thing as your A.
>>>
>>> But note that I prefer to leave both the top and bottom boxes on the right 
>>> formatted (where you only left the top box formatted).
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>>
>>> On Wed, Nov 13, 2013 at 3:27 AM, Linda Alvord 
>>> <[email protected]>wrote:
>>>
>>>> Thanks Raul.  Here's the finished function.  I would like not to 
>>>> include  A .  Any ideas:
>>>>
>>>>    a=:'%'
>>>>    b=:i:3
>>>>    c=:i.3
>>>>    d=:c;b
>>>>
>>>>    T=: 1
>>>> :'(,.(<":u),<":,.>{.y),.(<{.":A),:<}.[A=:(>}.y),".(":,>{.y),(u,,''/''),":,>}.y'
>>>>    a T d
>>>> ┌─┬──────────────────────────────────┐
>>>> │%│       _3   _2 _1 0 1   2        3│
>>>> ├─┼──────────────────────────────────┤
>>>> │0│        0    0  0 0 0   0        0│
>>>> │1│_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>>>> │2│_0.666667   _1 _2 _ 2   1 0.666667│
>>>> └─┴──────────────────────────────────┘
>>>>
>>>>    '>.' T (i:4);i:4
>>>> ┌──┬─────────────────────┐
>>>> │>.│_4 _3 _2 _1 0 1 2 3 4│
>>>> ├──┼─────────────────────┤
>>>> │_4│_4 _3 _2 _1 0 1 2 3 4│
>>>> │_3│_3 _3 _2 _1 0 1 2 3 4│
>>>> │_2│_2 _2 _2 _1 0 1 2 3 4│
>>>> │_1│_1 _1 _1 _1 0 1 2 3 4│
>>>> │ 0│ 0  0  0  0 0 1 2 3 4│
>>>> │ 1│ 1  1  1  1 1 1 2 3 4│
>>>> │ 2│ 2  2  2  2 2 2 2 3 4│
>>>> │ 3│ 3  3  3  3 3 3 3 3 4│
>>>> │ 4│ 4  4  4  4 4 4 4 4 4│
>>>> └──┴─────────────────────┘
>>>>
>>>>
>>>> Linda
>>>>
>>>> -----Original Message-----
>>>> From: [email protected] [mailto:pro 
>>>> [email protected]] On Behalf Of Raul Miller
>>>> Sent: Saturday, November 09, 2013 8:45 AM
>>>> To: Programming forum
>>>> Subject: Re: [Jprogramming] Times Table Therapy
>>>>
>>>> First, g seemed a bit overly ornate, so I took the liberty of 
>>>> putting it through a weight loss program:
>>>>
>>>>    % 1 :'<}.":(>}.y),(>{.y)u/,>}.y' (i.3) ,&< i:3
>>>>
>>>>    % 1 :'<}.":(>}.y),(>{.y)u/,>{:y' (i.3) ,&< i:3
>>>>
>>>>    % 1 :'<}.":(>}.y),(>{.y)u/>{:y' (i.3) ,&< i:3
>>>>
>>>>    % 1 :'<}.":(>}.y),u/&>/y' (i.3) ,&< i:3
>>>>
>>>>    % 1 :'<}.":(],u/)&>/y' (i.3) ,&< i:3
>>>>
>>>>
>>>> (these all have the same result as a g d)
>>>>
>>>>
>>>> The phrase U&>/Y would apply the verb U between the contents of the 
>>>> two boxes of Y (if Y is a pair of boxes). And, in this case, U 
>>>> would be a verb with the result: "contents of the second box and a u 
>>>> table".
>>>>
>>>>
>>>> I am more comfortable with the short form than the long form 
>>>> because the short form leaves me with extra space on the line so I 
>>>> can inspect the rest of the sentence.
>>>>
>>>>
>>>> Anyways, note that we can get the top row back by getting rid of 
>>>> the behead, like this:
>>>>
>>>>     % 1 :'<":(],u/)&>/y' (i.3) ,&< i:3
>>>>
>>>> ┌──────────────────────────────────┐
>>>>
>>>> │       _3   _2 _1 0 1   2        3│
>>>>
>>>> │        0    0  0 0 0   0        0│
>>>>
>>>> │_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>>>>
>>>> │_0.666667   _1 _2 _ 2   1 0.666667│
>>>>
>>>> └──────────────────────────────────┘
>>>>
>>>>
>>>> If you want the top row in a different box from the rest of the 
>>>> rows, you can replace that leading < with ,.@({.;}.)
>>>>
>>>>
>>>> Does this help?
>>>>
>>>>
>>>> Thanks,
>>>>
>>>>
>>>> --
>>>>
>>>> Raul
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, Nov 9, 2013 at 3:15 AM, Linda Alvord 
>>>> <[email protected]
>>>> >wrote:
>>>>
>>>> > Thanks.  I’m starting to understand things better.  Here is my 
>>>> > next problem.
>>>> >
>>>> >    a=:%
>>>> >    b=:i:3
>>>> >    c=:i.3
>>>> >    d=:(<c),<b
>>>> >
>>>> >    ]M=:":(>}.d),(>{.d)a/,>}.d
>>>> >        _3   _2 _1 0 1   2        3
>>>> >         0    0  0 0 0   0        0
>>>> > _0.333333 _0.5 _1 _ 1 0.5 0.333333
>>>> > _0.666667   _1 _2 _ 2   1 0.666667
>>>> >    (<{.M),:<}.M
>>>> > ┌──────────────────────────────────┐
>>>> > │       _3   _2 _1 0 1   2        3│
>>>> > ├──────────────────────────────────┤
>>>> > │        0    0  0 0 0   0        0│
>>>> > │_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>>>> > │_0.666667   _1 _2 _ 2   1 0.666667│
>>>> > └──────────────────────────────────┘
>>>> >
>>>> >    f=: 1 :'":(>}.y),(>{.y)u/,>}.y'
>>>> >    a f d
>>>> >        _3   _2 _1 0 1   2        3
>>>> >         0    0  0 0 0   0        0
>>>> > _0.333333 _0.5 _1 _ 1 0.5 0.333333
>>>> > _0.666667   _1 _2 _ 2   1 0.666667
>>>> >
>>>> >    g=: 1 :'<}.":(>}.y),(>{.y)u/,>}.y'
>>>> >    a g d
>>>> > ┌──────────────────────────────────┐
>>>> > │        0    0  0 0 0   0        0│
>>>> > │_0.333333 _0.5 _1 _ 1 0.5 0.333333│
>>>> > │_0.666667   _1 _2 _ 2   1 0.666667│
>>>> > └──────────────────────────────────┘
>>>> >
>>>> > I want to modify  g  so that it attaches the top row with correct 
>>>> > spacing as shown above.
>>>> >
>>>> > Linda
>>>> >
>>>> >
>>>> > -----Original Message-----
>>>> > From: [email protected] [mailto:
>>>> > [email protected]] On Behalf Of Raul 
>>>> > Miller
>>>> > Sent: Friday, November 08, 2013 7:57 AM
>>>> > To: hProgramming forum
>>>> > Subject: Re: [Jprogramming] Times Table Therapy
>>>> >
>>>> > http://www.jsoftware.com/help/dictionary/cret.htm explains that return.
>>>> > exits an explicit definition.
>>>> >
>>>> > http://www.jsoftware.com/help/dictionary/d521.htm explains that 
>>>> > the result of {. is the leading item of an array (which means one 
>>>> > dimension less than the table).
>>>> >
>>>> > I'll presume that I do not need to document "behead" but just in 
>>>> > case some of the younger readers are curious:
>>>> > http://www.jsoftware.com/help/dictionary/d531.htm
>>>> >
>>>> > Thanks,
>>>> >
>>>> > --
>>>> > Raul
>>>> >
>>>> >
>>>> >
>>>> > On Fri, Nov 8, 2013 at 3:26 AM, Linda Alvord 
>>>> > <[email protected]
>>>> > >wrote:
>>>> >
>>>> > > What does  return.  Mean?
>>>> > >
>>>> > > Also:
>>>> > >
>>>> > >    a=:*
>>>> > >    b=:i:5
>>>> > >    c=:i.3
>>>> > >    d=:(<c),<b
>>>> > >
>>>> > >    c */b
>>>> > >   0  0  0  0  0 0 0 0 0 0  0
>>>> > >  _5 _4 _3 _2 _1 0 1 2 3 4  5
>>>> > > _10 _8 _6 _4 _2 0 2 4 6 8 10
>>>> > >
>>>> > >    (>{.d)
>>>> > > 0 1 2
>>>> > >    >}.d
>>>> > > _5 _4 _3 _2 _1 0 1 2 3 4 5
>>>> > >
>>>> > >   (>{.d) */ >}.d
>>>> > >   0  0  0  0  0 0 0 0 0 0  0
>>>> > >
>>>> > >  _5 _4 _3 _2 _1 0 1 2 3 4  5
>>>> > >
>>>> > > _10 _8 _6 _4 _2 0 2 4 6 8 10
>>>> > >
>>>> > >    $ (>{.d) */ >}.d
>>>> > > 3 1 11
>>>> > >
>>>> > > So:
>>>> > >
>>>> > >     (>{.d) */, >}.d
>>>> > >   0  0  0  0  0 0 0 0 0 0  0
>>>> > >  _5 _4 _3 _2 _1 0 1 2 3 4  5
>>>> > > _10 _8 _6 _4 _2 0 2 4 6 8 10
>>>> > >
>>>> > >  Why is  ({.c) a list and  (}.d) a table?
>>>> > >
>>>> > > Linda
>>>> > >
>>>> > >
>>>> > > -----Original Message---
>>>> > > From: [email protected] [mailto:
>>>> > > [email protected]] On Behalf Of Raul 
>>>> > > Miller
>>>> > > Sent: Thursday, November 07, 2013 10:07 AM
>>>> > > To: Programming forum
>>>> > > Subje.ct: Re: [Jprogramming] Times Table Therapy
>>>> > >
>>>> > > We can replace
>>>> > >     g=: 1 :',.(":u),":,.>{.y'
>>>> > > with
>>>> > >    g=: 1 :',.(":5!:5<''u''),":,.>{.y'
>>>> > >
>>>> > > A problem is that u is a verb in your example, and you want a 
>>>> > > noun representation of it.
>>>> > >
>>>> > > But this runs into a problem:
>>>> > >
>>>> > >    g=: 1 :',.(":5!:5<''u''),":,.>{.y'
>>>> > >    * g (<i.3),<i.5
>>>> > > |value error: y
>>>> > > |   ,.(":5!:5<'u'),":,.>{.    y
>>>> > >
>>>> > > We need an unquoted reference to u (or one of the other such 
>>>> > > names), or x and y are interpreted to mean u and v.
>>>> > >
>>>> > > So:
>>>> > >
>>>> > >    g=: 1 :',.(":5!:5<''u''),":,.>{.y return. u'
>>>> > >    * g (<i.3),<i.5
>>>> > > *
>>>> > > 0
>>>> > > 1
>>>> > > 2
>>>> > >
>>>> > > Does this make sense?
>>>> > >
>>>> > > --
>>>> > > Raul
>>>> > >
>>>> > >
>>>> > >
>>>> > > On Wed, Nov 6, 2013 at 11:07 PM, Linda Alvord 
>>>> > > <[email protected]
>>>> > > >wrote:
>>>> > >
>>>> > > >  This the data I want to use:
>>>> > > >
>>>> > > >   a=:*
>>>> > > >    b=:i:5
>>>> > > >    c=:i.3
>>>> > > >    ]d=:(<c),<b
>>>> > > > ┌─────┬──────────────────────────┐
>>>> > > > │0 1 2│_5 _4 _3 _2 _1 0 1 2 3 4 5│ 
>>>> > > > └─────┴──────────────────────────┘
>>>> > > >
>>>> > > > This this is the correct result with the wrong data:
>>>> > > >
>>>> > > >    a=:'*'
>>>> > > >    f=: 1 :',.(":u),":,.>{.y'
>>>> > > >    a f d
>>>> > > > *
>>>> > > > 0
>>>> > > > 1
>>>> > > > 2
>>>> > > >
>>>> > > > Here is the error I can’t fix:
>>>> > > >    a=:*
>>>> > > >    g=: 1 :',.(":u),":,.>{.y'
>>>> > > >    a g d
>>>> > > > |domain error: a
>>>> > > > |   ,.    (":u),":,.>{.y
>>>> > > >
>>>> > > >
>>>> > > > Is there a way to make  g  work correctly?
>>>> > > >
>>>> > > > Linda
>>>> > > >
>>>> > > >
>>>> > > > -----Original Message-----
>>>> > > > From: [email protected] [mailto:
>>>> > > > [email protected]] On Behalf Of Roger 
>>>> > > > Hui
>>>> > > > Sent: Sunday, November 03, 2013 7:02 PM
>>>> > > > To: Programming forum
>>>> > > > Subject: Re: [Jprogramming] Times Table Therapy
>>>> > > >
>>>> > > > > My first adverb!  Linda
>>>> > > >
>>>> > > > Given the topic and the person, it seems appropriate to point 
>>>> > > > out that
>>>> > > Ken
>>>> > > > Iverson credited Linda Alvord for getting over a pedagogic hurdle.
>>>> > > > From *Kenneth
>>>> > > > E. Iverson <http://www.jsoftware.com/papers/autobio.htm>*,
>>>> > > > 2008,
>>>> > section
>>>> > > > 5:
>>>> > > >
>>>> > > > There were also surprises in the writing.  Although the great 
>>>> > > > utility
>>>> > of
>>>> > > > matrices was recognized (as in a 3-by-2 to represent a 
>>>> > > > triangle), there
>>>> > > was
>>>> > > > a great reluctance to use them because the concept was 
>>>> > > > considered to be
>>>> > > too
>>>> > > > difficult.
>>>> > > >
>>>> > > > Linda Alvord said to introduce the matrix as an outer product 
>>>> > > > — an idea that the rest of us thought outrageous, until Linda 
>>>> > > > pointed out that
>>>> > the
>>>> > > > kids already knew the idea from familiar addition and 
>>>> > > > multiplication
>>>> > > tables.
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > > > On Sun, Nov 3, 2013 at 7:04 AM, Linda Alvord 
>>>> > > > <[email protected]
>>>> > > > >wrote:
>>>> > > >
>>>> > > > >
>>>> > > > > My first adverb!  Linda
>>>> > > > >
>>>> > > > -------------------------------------------------------------
>>>> > > > -
>>>> > > > -
>>>> > > > ---
>>>> > > > ---- 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
>>>> >
>>>> -------------------------------------------------------------------
>>>> -
>>>> -
>>>> - 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
> ----------------------------------------------------------------------
> 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