The question arose in an APL context and, as it turns out,
it arose because the questioner did not understand
and did not care to know standard APL terminology.

In J there is no problem.  (Actually in APL there is no 
problem either.)   All the standard documentation says 
that a noun or array can have rank 0, adverbs and
conjunctions can have noun arguments, not noun
or scalar arguments, verbs return noun results,
not noun or scalar results, etc. etc.



----- Original Message -----
From: Henry Rich <[email protected]>
Date: Monday, October 25, 2010 20:02
Subject: Re: [Jgeneral] "J In A Day" --crits please
To: General forum <[email protected]>

>  > They don't have the word "noun" in APL.
> 
> I'm teaching J, not APL.  For the cases you cite, instead 
> of 'arrays or 
> scalars' I simply say 'noun'.  I have all the words I 
> need.  I like it 
> that way.
> 
> ,99 is, of course, an array.  It is one element lined 
> up.  It's an army 
> of one.  It's a lot different from 99, and deserves a 
> verbal distinction.
> 
> Henry Rich
> 
> 
> On 10/25/2010 10:54 PM, Roger Hui wrote:
> >> But if I mean 'any scalar or array', I have the
> >> word 'noun' for that.
> >
> > They don't have the word "noun" in APL.
> >
> >> I just don't see why the word 'array', which in plain English 
> denotes>> an arrangement of (multiple) things, should have to 
> include scalars.
> >> Sue me.  Or change the standard.
> >
> > Look at the texts I quoted.  For example, the function
> > + takes arrays arguments, scalar or arrays of higher rank.
> > If arrays don't include scalars you'd constantly have to
> > say "arrays or scalars".   You can not use 
> "multiple" to
> > determine whether something is or is not an array,
> > for surely you would not say that ,99 or 1 1$99 or 1 1 1$99
> > are not arrays?
> >
> > The APL standard uses "array" in that way for a good reason.
> > "Array or scalar" in APL is a fiction.  I don't believe 
> there is
> > anything in the APL literature that says that a scalar is
> > not an array.  For the same good reason.
> >
> >
> >
> > ----- Original Message -----
> > From: Henry Rich<[email protected]>
> > Date: Monday, October 25, 2010 19:11
> > Subject: Re: [Jgeneral] "J In A Day" --crits please
> > To: General forum<[email protected]>
> >
> >> I teach the kids that 'scalar' and 'atom' mean a rank-0 thing,
> >> and
> >> 'array' means rank>  0.  Yeah, I know it's not
> >> standard.  But if I mean
> >> 'any scalar or array', I have the word 'noun' for that.
> >> And the
> >> distinction between scalar and array is important enough to have
> >> words for.
> >>
> >> My way, I can give them some simple things to memorize:
> >>
> >>     An array is a list of its items.
> >>
> >>     The items of an array have rank one 
> less than the array.
> >>
> >>     #array is the same as {.$array.
> >>
> >>     A DLL descriptor of *c matches an 
> array of characters.
> >>
> >> I just don't see why the word 'array', which in plain English
> >> denotes an
> >> arrangement of (multiple) things, should have to include scalars.
> >> Sue me.  Or change the standard.
> >>
> >> Henry Rich
> >>
> >>
> >> On 10/25/2010 9:19 PM, Roger Hui wrote:
> >>> I had/have been an APLer for many years and I have
> >>> never heard of scalars not being arrays.  As far as
> >>> I know 99 is not just now deemed an array but
> >>> have always been deemed an array.  I'd be interested
> >>> in any APL reference you can find that says otherwise.
> >>>
> >>> A more ancient reference for that fact that a scalar is an array.
> >>> Falkoff and Iverson, The APL\360 Terminal System, 1967-10-16.
> >>> http://www.jsoftware.com/papers/APL360TerminalSystem.htm
> >>>
> >>> - A vector has a “rank” of one, the term being used,
> >>> as in tensor analysis, to mean the number of indices
> >>> required to identify a single element in an array.
> >>> Hence, a scalar has rank zero and a matrix has rank two.
> >>>
> >>> - No special notational convention is required for the
> >>> element-by-element extension, so that in the expression a+b ,
> >>> for example, a and b may be any pair of matching arrays.
> >>> If one argument is a scalar the other may be any array, ...
> >>>
> >>> ---
> >>>
> >>> In any case, you have not addressed the practical point
> >>> I raised:  if a scalar is not an array, you are going to
> >>> need a term for "array or scalar".  Another way to
> >>> look at it is, why is it useful to distinguish between
> >>> an array and a scalar?
> >>>
> >>> Whether a scalar is an array is not a statement that
> >>> you can prove one way or the other, and you have to
> >>> decide on considerations in the preceding paragraph,
> >>> or considerations similar to same.
> >>>
> >>> Finally, why is it counter-intuitive that a scalar is
> >>> an array?
> >>>
> >>>
> >>>
> >>> ----- Original Message -----
> >>> From: Ian Clark<[email protected]>
> >>> Date: Monday, October 25, 2010 17:44
> >>> Subject: Re: [Jgeneral] "J In A Day" --crits please
> >>> To: General forum<[email protected]>
> >>>
> >>>> Thanks, Roger, for the ref to the ISO standard: ISO 13751. Wow,
> >>>> haven't things moved on since I was involved with the draft ISO
> >>>> standard in 1992. I'd buy myself a copy, but they want $292 just
> >>>> for a
> >>>> lousy PDF. But yes: thanks for reminding me the Dyalog
> >> manuals are
> >>>> free.
> >>>>
> >>>> No, I didn't really think you'd get it wrong. But I confess
> >> I'm amazed
> >>>> that scalar 99 is now deemed an "array"! I thought I knew APL,
> >>>> but I'd
> >>>> never heard that one. (Yes, I knew about rank zero.)
> >>>>
> >>>> I'm now going to ask all my APL friends: "did you know 99 
> is an
> >>>> array?" -- and see what they say.
> >>>>
> >>>> But you know what I think? I think it's counter-intuitive,
> >> and that's
> >>>> the sort of thing that gets APL a bad name. And not just APL...
> >>>>
> >>>> I refuse to get into disputes about which is the better
> >>>> language: APL
> >>>> or J. What's more, "reductio" arguments don't work with me 
> either,>>>> unless I'm convinced we start from the same premises 
> -- which
> >>>> I'm not.
> >>>>     I've spent my programming career 
> porting code,
> >> and there
> >>>> is no
> >>>> "better" or "worse" language for me. There is just a source
> >> and a
> >>>> target language. Which is which? Well, (1) who's paying? (2)
> >>>> which way
> >>>> does he want to migrate his code?
> >>>>
> >>>> I haven't touched APL for over a year now, but I've coded
> >>>> heavily in
> >>>> J. The reasons for that won't impress you. If you ask me
> >> which I have
> >>>> any warm feeling for, I have to say APL... in the same way 
> a doctor
> >>>> prefers a sick patient to a healthy one. It's made me a living,
> >>>> and a
> >>>> good one.
> >>>>
> >>>> I've offered to write this crash-course for APLers. Some of
> >> them are
> >>>> proud of their skill in the language -- and they don't respond
> >>>> positively to having it dissed. I'm going to need to purge my
> >> answers>>  of all insinuation that APL is rubbish. 
> People will be
> >> so relieved!
> >>>> "It's about J and it doesn't rubbish APL...!"
> >>>>
> >>>> But I know what they're going to ask: what's with all these
> >>>> nouns and pronouns?
> >>>>
> >>>> I've asked on this list: "what's a pronoun"? I still don't
> >> know the
> >>>> answer (with my APL hat on, let me stress). I'm going to have
> >> to say:
> >>>> "it's only metalanguage." (...right: where's it formally
> >>>> defined?) "It
> >>>> isn't. The documenters want you to read their minds." (...ok,
> >>>> give me
> >>>> a clue.) "I can't. In two year's time you'll think it's all
> >> perfectly>>  natural" (...meanwhile...?)
> >>>>
> >>>> Ian
> >>>>
> >>>>
> >>>> On Mon, Oct 25, 2010 at 3:39 PM, Roger
> >> Hui<[email protected]>   wrote:
> >>>>> No, I don't mean "array or scalar", I meant "array".
> >>>>> Let me cite two sources:
> >>>>>
> >>>>> 0. Dyalog APL Language Reference/Variables/Arrays: -
> >>>>> A Dyalog APL data structure is called an array. ... An array
> >>>>> may have 0 or more axes.
> >>>>>
> >>>>> 1. ISO/IEC 13751-2001, ISO Standard on Extended APL,
> >>>>> Section 5.3.2: Scalar: An array whose rank is zero.
> >>>>>
> >>>>> As well, in practice, if a scalar in APL is if not an array,
> >>>>> then when you talk about APL you'd be constantly saying
> >>>>> "array or scalar" rather than just "array".   (I was
> >>>>> once asked by non-mathematicians why 1 is not
> >>>>> a prime.  After 5 seconds of thought I said,
> >>>>> "because it makes lots of statements simpler".
> >>>>> (As it is, you already have statements in math of the
> >>>>> sort "let n be an odd prime".))
> >>>>>
> >>>>> In APL, if a "value" can only be an array, what word or
> >>>>> words would you use when you need to say "the x of
> >>>>> a phrase", when the phrase can be +/ or +/ 1 2 3
> >>>>> or . or ¨?
> >>>>>
> >>>>> Reading your statements about "variable" in APL,
> >>>>> with descriptions of quad-nc, artificial restrictions on
> >>>>> reassignment, quad-ex, etc. etc.,   it strikes 
> me that
> >>>>> in contrast the meanings of "noun" and "pronoun"
> >>>>> are simpler and more precise (less variable ...) than
> >>>>> in APL. Even more so in any APLs which do not
> >>>>> allow names be assigned to a function via ← .
> >>>>> (Then functions can only be named as a side effect
> >>>>> of ⎕fx or of an edit session.)  One more thing:
> >>>>> Dyalog APL, which does allow sum←+/, does not
> >>>>> allow each←¨ .  Explain that one.
> >>>>>
> >>>>>
> >>>>>
> >>>>> ----- Original Message -----
> >>>>> From: Ian Clark<[email protected]>
> >>>>> Date: Monday, October 25, 2010 0:38
> >>>>> Subject: Re: [Jgeneral] "J In A Day" --crits please
> >>>>> To: General forum<[email protected]>
> >>>>>
> >>>>>> Roger,
> >>>>>>
> >>>>>> I'd call sum a "variable" in APL if-and-only-if ([]NC 'sum')
> >>>>>> returns 2.
> >>>>>>
> >>>>>> In Dyalog APL (I don't have it installed on my Mac) I 
> seem to
> >>>> recall>>   you can indeed write:
> >>>>>>          sum←+
> >>>>>> but  []NC 'sum' would afterwards return 3, telling 
> me it's
> >>>>>> a function
> >>>>>> (...whatever else it might have been before).
> >>>>>>
> >>>>>> So... "what do you call a name in APL whose referent is a
> >>>> function?">>   -- A function name.
> >>>>>>
> >>>>>> Moreover I think most APLs won't let you change "sum", say,
> >>>> from a
> >>>>>> variable name to a function name by reassigning it. Even if
> >>>> functional>>   assignment is permitted. The 
> statement (sum←+)
> >>>> causes an error
> >>>>>> if sum
> >>>>>> is already defined in the workspace as a variable, and you
> >> haven't>>>>  freed-up the name 'sum' for reuse by 
> localisation or []EX.
> >>>>>>
> >>>>>> I use "value" (...but only in an APL context, let me
> >>>> emphasise) to
> >>>>>> mean "something that can be assigned to a variable" (...and
> >>>> it still
> >>>>>> remains a variable). I think a lot of APLers would agree
> >> with that.
> >>>>>> It's a more restricted meaning of "value" than you imply in
> >>>> the J
> >>>>>> context, which it seems to me means anything acceptable to
> >>>> the right
> >>>>>> of a copula. Or, more precisely, any entity that is
> >> returned by
> >>>>>> evaluating a phrase which can validly stand to the right 
> of a
> >>>> copula.>>
> >>>>>> You say that "noun" in J corresponds directly and exactly
> >>>> with "array"
> >>>>>> in APL. Was that a mistake... don't you mean "array or scalar"?
> >>>>>> (...commonly expressed as "vector or scalar" -- "array" not
> >>>>>> being a
> >>>>>> proper APL term, and [APL] "vector" not being restricted to
> >> 1-D
> >>>>>> arrays.) Surely you don't mean me to infer that 99 is not 
> a noun
> >>>>>> in J
> >>>>>> because it is not an "array" in APL?
> >>>>>>
> >>>>>> I'm not interested in challenging Ken's appeal to his implicit
> >>>>>> understanding of English Grammar (which I deny is necessarily
> >>>>>> mine, or
> >>>>>> indeed anyone else's) to convey programming ideas. He's allowed
> >>>>>> to do
> >>>>>> that. I just want a precise enough notion of "noun/pronoun"
> >> --
> >>>>>> as it
> >>>>>> applies to J -- so I can point to something in J code and
> >> say with
> >>>>>> confidence "that's a noun" or "that's a pronoun".
> >>>>>>
> >>>>>> Ian
> >>>>>>
> >>>>>>
> >>>>>> 2010/10/25 Roger Hui<[email protected]>:
> >>>>>>>> But Ken talks of "analogies", and seems to use the word 
> "noun">>>>>>>> to mean a value or quantity: the result of an 
> expression,>>>> not the
> >>>>>>>> variable -- or named memory location -- it's stored in. What,
> >>>>>> in J,
> >>>>>>>> corresponds to an APL "variable"?
> >>>>>>>
> >>>>>>> "Noun" in J does not mean value.  It corresponds
> >>>>>>> directly and exactly to "array" in APL.  A value can
> >>>>>>> be a verb (function), for example, "the value of the
> >>>>>>> sentence +/ is a verb that does summation".
> >>>>>>>
> >>>>>>> Regarding your last question, It depends on how
> >>>>>>> "variable" is used in APL.  If you say sum←+/ 2 3 4,
> >>>>>>> I think you'd call "sum" a variable.  But if you say
> >>>>>>> sum←+/, is "sum" still a variable?  If not, what is
> >>>>>>> the difference, and what do you call a name in APL
> >>>>>>> whose referent is a function?  If yes, doesn't it
> >>>>>>> sound jarring to your ears?  (It does to mine.)
> >>>>>>>
> >>>>>>> And, a question Ken used to ask:  if sum←1 2 3,
> >>>>>>> what is variable about "sum"?
> >>>>>>>
> >>>>>>> Some APL texts also calls .5 and 1 2 3 and 'abc'
> >>>>>>> "variables, that is, used "variable" and "array"
> >>>>>>> as synonyms.  Ken's question is even more pertinent
> >>>>>>> in those cases:  If ever .5 has a different value
> >>>>>>> ("varied"), I expect to get system errors shortly
> >>>>>>> thereafter.
> >>>>>>>
> >>>>>>> There is a table in the dictionary section II. Grammar:
> >>>>>>> http://www.jsoftware.com/help/dictionary/dict2.htm
> >>>>>>>
> >>>>>>> PARTS of SPEECH
> >>>>>>>
> >>>>>>> 50
> >> 
> fahrenheit           Nouns/Pronouns
> >>>>>>> + - * % bump    Verbs/Proverbs
> >>>>>>> / \     Adverbs
> >>>>>>> &          
> Conjunction>>>>>>> ( )     Punctuation
> >>>>>>> =:      Copula
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> ----- Original Message -----
> >>>>>>> From: Ian Clark<[email protected]>
> >>>>>>> Date: Sunday, October 24, 2010 12:21
> >>>>>>> Subject: [Jgeneral] "J In A Day" --crits please
> >>>>>>> To: General forum<[email protected]>
> >>>>>>>
> >>>>>>>> First draft of an article for eventual submission to VECTOR
> >>>>>> entitled>>   "J In A Day".
> >>>>>>>>
> >>>>>>>> http://www.jsoftware.com/jwiki/JinaDay
> >>>>>>>>
> >>>>>>>> It is "work-in-progress". It represents an "alpha" offering,
> >>>>>> not a
> >>>>>>>> "release" or "publication". It's aimed squarely at the
> >>>> APLer who
> >>>>>>>> doesn't know any J.
> >>>>>>>>
> >>>>>>>> There won't be many such on this list. But right now 
> I'm keen
> >>>>>> to get
> >>>>>>>> the J right.
> >>>>>>>>
> >>>>>>>> The prevalent message to APLers coming to J is: un-learn
> >>>> everything>>   >>   you know about APL 
> (it's not
> >> helpful) and learn
> >>>> J from first
> >>>>>>>> principles. I think this erects an unnecessary barrier 
> to the
> >>>>>>>> dwindling(?) band of APLers ignorant of J.
> >>>>>>>>
> >>>>>>>> Of course the barriers may be there anyway. I recall my first
> >>>>>> exposure>>   to J aroused antipathy in me. I can't
> >> quite remember
> >>>>>> why. A Kuhnian
> >>>>>>>> paradigm-shift may be inescapable--or at least the need for
> >>>>>> one. The
> >>>>>>>> article deliberately avoids being starry-eyed so as not to
> >>>>>> raise the
> >>>>>>>> APLer's hackles. But this is not meant as provocation 
> to the
> >>>>>> J-er.
> >>>>>>>>
> >>>>>>>> There's a fairly defiant "admonition" (as MoinMoin 
> calls it)
> >>>>>> to J
> >>>>>>>> experts -- but don't be put off. I would really
> >> appreciate your
> >>>>>>>> comments. So get your anoraks on... ;)
> >>>>>>>>
> >>>>>>>> Of course, if an APL-er knowing absolutely no J were to work
> >>>>>> through>>   it, and confirm (or deny) it was of 
> use to
> >> them...>>>>  that would
> >>>>>>>> get me
> >>>>>>>> on like 7-league boots.
> >>>>>>>>
> >>>>>>>> BTW I use the J terms "proverb" and "pronoun" in it. I
> >>>> need to
> >>>>>>>> know if
> >>>>>>>> I'm using them correctly. See my separate posting.
> >>>>>>>>
> >>>>>>>> Thanks, Brian, for the Iverson ref. From the horse's mouth,
> >>>>>> so to
> >>>>>>>> speak. But Ken talks of "analogies", and seems to use the
> >>>>>> word "noun"
> >>>>>>>> to mean a value or quantity: the result of an expression,
> >>>> not the
> >>>>>>>> variable -- or named memory location -- it's stored in. What,
> >>>>>> in J,
> >>>>>>>> corresponds to an APL "variable"?
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to