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