NuVoc's FramingFill essay is not intended as its discussion of frame.

The plan was to have an essay introducing verb rank and frame. We (Ian Clark & I) made a couple of attempts, but never got a version that would lead the new user securely to the goal. The job really needs Ian's touch, but he has moved on to other projects. If anyone wants to take this on, that would be great. If not, I will take a shot at it someday.

In the meantime, I will try to tweak the pages to mention empty frames.

Henry Rich

On 1/15/2016 3:01 PM, Matthew Baulch wrote:
Empty arrays are perfectly clear. They are exactly those arrays with shape
containing at least one '0'.

I had not considered applying a verb with argument rank 'n' to a noun 'a'
of rank >:n where (>:n){$a is 0. Such an application has frame ,0. Applying
the verb to a noun of rank n is entirely different, and should have an
empty frame. That was, I believe, the source of my confusion.

Re-reading my response to Roger, I meant to say the more general "shapes
with 0 sometimes make sense", rather than "frames" which of course follows.
His examples illustrated how empty frames naturally fit into J.

You are right in a way. Your link, had I read it, *might* have cleared this
up. I probably glanced at the title "Empty Arguments" and subtitle "Noun
types produced by empty arguments (with tables)" in

http://code.jsoftware.com/wiki/NuVoc

Without thinking, both probably made me think of empty arrays.

Documentation suggestions?

(1) http://code.jsoftware.com/wiki/Vocabulary/FramingFill

is NuVoc's answer to the notion of 'frame', from what I can see. If it
included an example of a frame with 0, that may have helped. The words

"Each argument is construed as an array of cells of rank r. The frame of
the argument is the shape of this array of cells."

make sense for non-empty frames, but for empty frames it paints a bizarre
conceptual picture. Since 'frame' is in italics here, it's implied that
this is NuVoc's literal definition. The definition

(2) http://code.jsoftware.com/wiki/Vocabulary/Glossary#Frame

is similarly worded, links to the above for "More...", and doesn't
obviously imply empty frames.

I don't quite feel qualified to edit NuVoc myself yet, except perhaps to
correct trivial errors. For anyone feeling inclined, clarifying (1) and (2)
could dissuade others from such confusion.

On Fri, Jan 15, 2016 at 9:20 PM, Henry Rich <[email protected]> wrote:

It sounds like your original confusion was between empty arguments (where
the frame contains 0) and an empty frame (which simply means that the verb
operates on a single cell).

http://code.jsoftware.com/wiki/Vocabulary/EmptyArguments

has more on this topic.

Whenever an earnest user has confusion with the documentation, I want to
improve the documentation.  Can you think where a timely word would have
helped?

Henry Rich


On 1/15/2016 2:43 AM, Matthew Baulch wrote:

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

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