On Mon, Jan 21, 2013 at 3:58 AM, Linda Alvord <lindaalv...@verizon.net> wrote:
> However, I do not understand how ic and ic2 agree when they don't!

I will agree that they do not agree:

   ic   =. [: , ([: i: 9&o.) j./ ([: i: 11&o.)
   ic2  =. [: , j./&i:/@+.

   $ ic 1 2 3
63
   $ ic2 1 2 3
21

However they do agree when they are used at rank 0:
   *./,(ic -: ic2)"0 (i:10) j./ (i:10)
1

I think that the point here is that no one has described any reason to
use them in any way other than rank 0.

Personally, I sometimes wish that a rank decoration or other modifier
on an explicit definition would not interfere with debugging.  I think
that this issue introduces two different phrasing styles, and there's
a tension between them that I am not totally sure is good for us.

On the other hand, being overly general is often also a problem, so
maybe this is better addressed in our descriptions and thoughts than
in our code.

Still... I sometimes wonder if perhaps we ought to introduce a new
grammatical production so that (name 0=: value) was equivalent to
(name =: value"0).  Or maybe that would be cleaner if it were phrased
as (name ("0)=: value)?

Anyways, back to your "I do not understand" statement.  I think that
the issue here is the definition of "agree" that we are using.  And,
since you presented the display forms of ic and ic2 as illustrations
of what you did not understand, and since I presented results of
example evaluations as illustrations of what I thought I understood, I
think I'm on fairly solid ground, here.

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

Reply via email to