Thanks Roger. That's perfect. I see what you mean: frames with 0 sometimes
make sense, and zero frames prevent unnecessary awkwardness and ambiguity
in these cases. Very good examples!

On Fri, Jan 15, 2016 at 5:57 PM, Roger Hui <[email protected]>
wrote:

> Empty frame, or more accurately zero frames, if it is said to be for
> anything, is to allow edge cases, the case where the frame contains a 0, to
> work without a lot of exceptions, without the programmer having to write
> extra code.  An example hopefully illustrates this point.
>
>    x ,"1 y=: i.3 4
> 10 20 30 0 1  2  3
> 10 20 30 4 5  6  7
> 10 20 30 8 9 10 11
>
> In this case the left frame is '' and the right frame is }:$y, (,3) in this
> case.
>
>    x ,"1 y=: i.2 4
> 10 20 30 0 1 2 3
> 10 20 30 4 5 6 7
>    x ,"1 y=: i.1 4
> 10 20 30 0 1 2 3
>    x ,"1 y=: i.0 4
>
> The right frames in the successive examples are (,2), (,1), and (,0).  The
> last is an example of a zero frame, and the example worked with no fuss.
> The following sequence makes more salient the consistent treatment of
> frames, including zero frames.
>
>    $ x,"1 y=: i.3 4
> 3 7
>    $ x,"1 y=: i.2 4
> 2 7
>    $ x,"1 y=: i.1 4
> 1 7
>    $ x,"1 y=: i.0 4
> 0 7
>
> The reason why zero frames requires extra discussion is because ordinarily
> you have argument cell(s) for the verb to apply to, and the result cells
> and hence the result is not in question.  With zero frames, there are no
> argument cells, so the system needs to do something extra (so that you
> don't have to).  (x,"1 y appends vectors to vectors, but when y is i.0 4 it
> does not have any vectors.)
>
>
>
> On Thu, Jan 14, 2016 at 10:35 PM, Matthew Baulch <[email protected]>
> wrote:
>
> > And the dictionary defines frame.... such that it may be empty? I'm most
> > interested in whether, supposing this is the case, allowing empty frames
> > serve (an)other purpose(s) in the structure of the language.
> >
> > Apologies if my original phrasing was unclear.
> >
> > Every decision in the design of J seems very deliberate—which I really
> > appreciate. It just seems that empty frames must serve a purpose. Trying
> to
> > work it out.
> > On 15 Jan 2016 4:21 pm, "bill lam" <[email protected]> wrote:
> >
> > > The J dictionary is always correct.
> > >
> > > Пт, 15 янв 2016, Matthew Baulch написал(а):
> > > > Fair enough, though I can't work out whether the dictionary agrees
> with
> > > > NuVoc here or not. Either way, which definition of frame is correct?
> > > > On 15 Jan 2016 3:48 pm, "bill lam" <[email protected]> wrote:
> > > >
> > > > > For J implemention, the only authority is the J dictionary since
> > > > > it defines the J language.  You need not worry anything else.
> > > > >
> > > > > http://www.jsoftware.com/help/dictionary/dictb.htm
> > > > >
> > > > > Пт, 15 янв 2016, Matthew Baulch написал(а):
> > > > > > I assume the intended definition of 'frame', in relation to verb
> > > > > arguments,
> > > > > > is that given on
> > > > > >
> > > > > > http://code.jsoftware.com/wiki/Vocabulary/FramingFill
> > > > > >
> > > > > > I'm just trying to understand verb/argument combinations with
> empty
> > > > > > frame--the most common case, I suppose.
> > > > > >
> > > > > > From the wording "each argument is ... an array of [r-cells]. The
> > > frame
> > > > > ...
> > > > > > is the shape of this array of [r-cells]", it seems that a frame
> > > should
> > > > > > never be empty, but in fact have a minimum shape of '1'. Of
> course,
> > > this
> > > > > > ties into the wording of many other statements. In the case of
> > dyadic
> > > > > > verbs, for instance,
> > > > > >
> > > > > > "frames must agree ... they must be identical or one must be a
> > > prefix of
> > > > > > the other" (stated in link above)
> > > > > >
> > > > > > as opposed to
> > > > > >
> > > > > > "frames must agree ... one must have shape 1 or be a prefix of
> the
> > > other"
> > > > > > (the way I see it, assuming equality implies prefix-of)
> > > > > >
> > > > > > Can anyone shed some light on this? Is there an important reason
> > for
> > > this
> > > > > > convention that I'm missing, or is it of little consequence?
> > > > > >
> > > > > > I'm implementing (or trying to...) a subset of J for the JVM, and
> > > this is
> > > > > > one little detail that's bothering me.
> > > > > >
> > > > > > Thanks.
> > > > > >
> > > > > > Matt Baulch
> > > > > >
> > > ----------------------------------------------------------------------
> > > > > > For information about J forums see
> > > http://www.jsoftware.com/forums.htm
> > > > >
> > > > > --
> > > > > regards,
> > > > > ====================================================
> > > > > GPG key 1024D/4434BAB3 2008-08-24
> > > > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> > > > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> > > > >
> > ----------------------------------------------------------------------
> > > > > For information about J forums see
> > http://www.jsoftware.com/forums.htm
> > > >
> ----------------------------------------------------------------------
> > > > For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >
> > > --
> > > regards,
> > > ====================================================
> > > GPG key 1024D/4434BAB3 2008-08-24
> > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> > > ----------------------------------------------------------------------
> > > 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