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
