Date: Jun 3, 2013 3:25 AM
Author: Richard Fateman
Subject: Re: Warsaw Univ. course, was Re: Work on Basic Mathematica Stephen!
On 6/1/2013 9:22 PM, David Bailey wrote:
> On 01/06/2013 11:06, Richard Fateman wrote:
>> I have no objection to a data type that might reasonably be called
>> Vector, or perhaps Sequence, that implements a data structure that uses
>> sequential storage. I object to calling it List.
> Indeed, the essence of your criticism seems to be merely that
> Mathematica gives a slightly different technical meaning to the English
> word 'List' than that of Lisp!
No, my point, though I may have worn it out with repetition, is that
using Mathematica for computer science, or implying that it represents
computer science best practices has many hazards. One of which is that
it misuses common terms in ways that are wrong. For example List
is used for a vector or array.
> If the head of a Mathematica list was LinkedList, you might have a
> point, as it is, your criticism is absurd.
It would be perfectly reasonable to believe that List in Mathematica is
implemented as a linked list. See for example Append, Prepend, Rest.
> I might as well claim that
> either the physics concept of field or the pure maths concept of a field
> is wrong because they are not the same!
Actually it is not analogous. Let us say that you wrote a math text and
decided that YOUR book would not use the ordinary math definition of
field, but would use field to denote, say, quotient ring. Then proved
a bunch of theorems about fields, theorems that were true of quotient
rings but generally FALSE about the "usual math" field.
That would be more like it.
Not too many people would be confused by the use of field as in "field
of corn" and an algebraic system.
> If anything, Mathematica's use of the term 'List' is a little closer to
> its English meaning, in as much as you can access its elements in random
> order - just as you can with a shopping list!
Ah, that would make it right, do you think? That your math text which
defines field as a quotient ring also says (oh by the way, fields in my
text book are usually green, so my definition is better...)
> John McCarthy didn't get to coin the computer science meaning of the
> word 'List' for ever more!
Of course not. It was in use well before Lisp. I don't know the
earliest use, but IPL-V used it (look it up on wikipedia), circa 1954.
The notion of linked list is kind of implicit in machine architectures
with indirect addressing.
Indeed, perhaps the very fact that he chose
> the word 'List', rather than something more descriptive like 'Chain'
> meant that he wanted people to concentrate on what it represented,
> rather than just on how it was implemented.
Perhaps. We cannot ask the late John McCarthy. However, it is more
likely that he was merely using the conventional term at the time.
The implementers of Lisp were not very big on abstraction in the
language per se. After all, CAR and CDR, operations that we would
call first() and rest() were named for acronyms addressing parts
of a machine register.
I suggest you learn more about Lisp if you wish to comment on it.