On Wed, Apr 13, 2011 at 7:43 AM, Boyko Bantchev <[email protected]> wrote:
>> This can only be true if you have ignored large parts of the dictionary.
>
> Apart from the fact that we are discussing a particular definition, your
> statement is rather vague.  Thus it is not possible to discuss it.

For example, the uses of / in
http://www.jsoftware.com/help/dictionary/d300.htm and in
http://www.jsoftware.com/help/dictionary/d430.htm (but those are not
the only pages where the dictionary contains examples of insert.)

>> For example: +/ is sum.  The sum of a single item list should be obvious.
>
> In a programming language, I consider obvious only things that are clearly
> defined in it, and things which can be logically deduced from them.
> Notions such as `should be obvious' have nothing to do with the rigour
> and accuracy that one expects from formal definitions.

As a general rule (except where they are not possible or not
practical) they do in J.

And, it's not clear why we should be allowing specifications for other
languages define J.

>> If by /'s definition you mean just that one page, ignoring all of the
>> rest of the dictionary, and anything that a person might use to find
>> the definitions of the words and symbols used?
>>
>> Yeah, ok, that would not define anything at all.
>
> Again, you are making a very vague statement here.  Of course, I am
> not ignoring `all of the rest of the dictionary', but everything specific of a
> programming construct must be said clearly and exhaustively in that
> object's definition.  This is where the definition of / is wanting.

This simulates your proposed alternative definition for -/
mred=: 3 :0
  assert 1~:#y
  -/y
)

This illustrates what your proposed change would mean for one of the
examples in the dictionary:
   mred .* >1 6 4;4 1 0;6 6 8
|assertion failure: assert
|       assert 1~:#y

>>> Besides, consider the following hypothesis.  Let us pretend that the DoJ
>>> didn't define u/y for an empty y.  Then, if it were true that from the 
>>> absence
>>> of the possibility to apply u you could still infer /'s behaviour, you 
>>> should
>>> be able to tell what that behaviour would be.  So, could you tell what
>>> would u/$0 have to return then, and why?
>>
>> I do not understand this question.
>
> You keep insisting that the meaning of u/y for 1=#y can be deduced despite
> of the DoJ not saying explicitly what u/y in that case is.  You are assuming
> that it is nevertheless deducible, right?  If that is true, then isn't
> it also true,
> and for the same reason, that it must be possible to infer the meaning of
> u/y for 0=#y as well?

I see illustrations for the 1=#y case which do not deal with the 0=#y case.

> So, imagine that the DoJ did not explicitly define u/y
> for an empty y, and tell us: what do you think the meaning of u/$0 must be
> then?

I currently do not know.  It's an exceptional case.

>> I posted that in a followup -- the determinant of a 1 by 1 matrix is
>> the single number in that matrix.
>> But that was not really necessary.  Any use of that definition for
>> determinant is going to be using -/ on single item lists.  And larger
>> matrices require the long right scope that J uses.
>
> We are discussing how precise the definition of / in J is, and you are talking
> of determinants, referring to algebraic concepts that themselves have nothing
> to do with programming, let alone J?!

Yes, yes, no.  (You asked a three part question.)

> Are you saying that, as part of the definition of a programming construct -- 
> one
> that is essentially a loop -- I must consider all possible uses of
> that construct
> in all sorts of application domains?  That I should only infer the definition
> through its imaginable uses?  Oh my!

No, you do not need to consider all possible uses.

However, before your treatment can be considered complete, you must
consider all uses explicitly provided by the dictionary.

And, you should consider other typical uses.  (A trivial
implementation of J, which only gave correct answers for dictionary
examples and gave "nonce error" for everything else, would not be
worthwhile.)

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

Reply via email to