Yes, we do start from different premises...

Early results from my straw poll among APLers indicate that everyone
but me takes "array" to include scalars. You are right and I was
wrong. I humbly bow my head in shame and admit I was mistaken. I learn
something new every day.

>     don't complain if other people use the terms
> differently from your own private terminology

Own private terminology? What does "array" mean to the rest of the
computer industry? And I wasn't complaining. Just seeking to know.

I learned APL on-the-job in 1973 in collaboration with ASDD Mohansic,
during one of IBM's periodic mad fits. That was probably the last time
I gave my whole attention to an APL manual (there weren't many of them
and they were precious, and people stole them). I can't honestly
remember seeing the word "array" used to describe APL data (as opposed
to functions -- back then these two were the only user-named
entities). It was always vectors and scalars. But if I _had_ seen it,
I would have put it down to an error in the documentation. Yet another
error.

I knew back then that APLers called things by different names from
everyone else. I put it down to language-as-religion. Professionally,
I was always on the borders of one language and another, so I had no
time for that.

This is not to say I don't respect people who skilfully employ precise
language to answer tough questions.

I do. Like I respect lawyers. In their place.

>                               Further discussion
> on this topic seems futile.

Believe me, Roger, I'm not trying to have the last word. But I
disagree. Yes, discussion on this list, maybe. I feel the same about
discussion of language merits: futile.

But if words like "array" -- or "pronoun" for that matter -- get
slipped into a discourse with novice users -- novices who are already
experts in allied fields -- without strong and repeated emphasis that
this is [APL] "private terminology" -- then that points to a fault in
the teachers, not the learners.

You may disagree. You will be in excellent company. We start from
different premises.

Ian


On Tue, Oct 26, 2010 at 5:42 AM, Roger Hui <[email protected]> wrote:
> You can ignore the standard documentation if you choose,
> but don't complain if other people use the terms
> differently from your own private terminology, or don't
> understand you when you use your own private terminology.
>
> This discussion started when you objected to my
> equating "noun" in J with "array" in APL.  I believe
> I have established the equivalence.  Further discussion
> on this topic seems futile.
>
>
>
> ----- Original Message -----
> From: Ian Clark <[email protected]>
> Date: Monday, October 25, 2010 20:24
> Subject: Re: [Jgeneral] "J In A Day" --crits please
> To: General forum <[email protected]>
>
>> Roger,
>>
>> APL terminology has never been my strong point. You intimate that
>> "array" has always been a prominent part of APL exposition -- I have
>> nothing to reply to that. Because I've never heard of it is not
>> to be
>> taken as casting any light on the matter. Perhaps I just wasn't paying
>> attention in class (I've never attended a class in APL)
>>
>> It's quite likely I wasn't paying attention. I suppose my
>> trouble is
>> that I've never taken formal specs seriously. As a mathematician
>> -- a
>> one time logician -- you might imagine I should? Perhaps, like a
>> statistician's scorn for the way psychologists use statistics, I've
>> never been able to credit they knew what they were doing.
>>
>> I've had a lot to do with language implementation projects in
>> IBM. The
>> developers never paid any attention to formal specs: the languages
>> just grew. The code it was written in was formal enough for the
>> designer. There was only ever any interest in developing a formal
>> description (a) to help the documenters write teaching
>> materials, (b)
>> to resolve problems uncovered by Product Test (they had this wonderful
>> tool called a Syntax Machines that generated random programs in your
>> language: a real stress-test for a compiler!) A formal
>> description was
>> always a post-hoc exercise and had little or no influence on the
>> course of the project. We used to say IBM languages were
>> "implementation defined".
>>
>> One that wasn't was the IBM Pascal compiler. Well, you know what
>> happened to that.
>>
>> That was IBM. You may deplore the situation, but there were reasons
>> for it. I won't be drawn into defending them.
>>
>> Outside IBM, things were different. Pascal, I'm told, was actually
>> published as a spec and only coded when Wirth was happy with it. I've
>> nothing but admiration for people able to carry that off. Hard
>> to do
>> inside IBM, I'd have said. The salesmen could dump requirements
>> on you
>> at any stage.
>>
>> I won't be drawn into a debate about whether language implementation
>> *should* be driven by its formal spec. ADA was -- and that
>> seemed to
>> be the heart of its problem. And APL... Well, you know far
>> better than
>> I do.
>>
>> So I've always been very interested in actual language-processor
>> behaviour, rather than formal specs published as documents.
>> Given the
>> choice of publishing a formal spec as a written document, or a working
>> model, I've always supported the latter activity as more
>> effective and
>> rewarding. Hence my involvement with the IAPL project -- which you
>> could describe as a delivery vehicle for the draft ISO spec.
>>
>> I've also learned and used about 20 languages besides APL. With the
>> exception of DOS Batch Language they all had a notion of a "variable"
>> as a named repository for a number: a single bare number. Let me call
>> it a scalar, though few language manuals ever did. Most of them had
>> some concept of an array too. They rigorously distinguished,
>> both in
>> syntax and implementation, between variables holding one numbers and
>> variables holding several numbers. If you were to tell an expert
>> programmer in one of these languages--smart men, all of them--that
>> there was a language called APL in which z←99 creates an array named
>> 'z', he would laugh in your face.
>>
>> And you ask me why it is counter-intuitive that a scalar is an 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?
>>
>> I said I wasn't going to be drawn into a debate on the merits of one
>> language or another. I have no opinion on the matter. None
>> that's fit
>> to repeat on this list. But you challenge me to give you an answer.
>> So...
>>
>> 'you are going to need a term for "array or scalar"...'
>> --- fine. How about "array or scalar"?
>>
>> "why is it useful to distinguish between an array and a scalar?"
>> --- why should I care if it's useful? People do distinguish. That's
>> good enough for me.
>> Maybe the syntax of the language they use forces them to distinguish.
>> APL manuals I have read do seem to have made use of it. Is that
>> evidence enough that someone deems it useful?
>> How have they made use of it? By saying things like: if you want to
>> form (A+B) then A and B must be of the same shape -- or one of them
>> must be a scalar.
>> ...I think my 6 year old granddaughter would be able to
>> understand that.
>> What are her chances of following a formulation based on Rank?
>>
>> Ian
>>
>>
>> On Tue, Oct 26, 2010 at 2:19 AM, Roger Hui <[email protected]> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to