Henry,

I have been working on a video version for labs within jqt for a few months. It 
seems to me that the use of animation may make some of the concepts a little 
easier to grasp. Producing these materials is time intensive but for 
foundational elements of the language it may be worth the effort. 

Would you be willing to review the work as it progresses to ensure that my 
visuals stay on message? :-)

Cheers, bob


> On Jan 17, 2016, at 6:11 PM, Henry Rich <[email protected]> wrote:
> 
> 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

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

Reply via email to