Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

Re: equivalence +- assignment



At 01:46 PM 10/15/00 -0400, I wrote:

There are many good reasons to prefer the ":=" symbol
...
were we use an asymmetric symbol ":=" to denote an asymmetric operation

This brings to mind another situation where the symmetric symbol "=" is
widely (if not wisely) used to represent an asymmetric operation, namely,
the assignment operator in programming languages including Fortran and C.

A few programming languages do in fact use the ":=" symbol (pronounced
"becomes") to represent assignment.
http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?assignment

Giving the assignment operator an asymmetric appearance has obvious
pedagogical and philosophical advantages. Experienced programmers don't
want to be bothered typing it, alas.

There may be some negative transference going on here: I suspect that as
people get more and more programming experience, they will become more and
more confused about whether the "=" sign represents some symmetric
operation (equality, in math class) or some asymmetric operation
(assignment, in programming class).

=====================

The point remains that Newton's law F=ma expresses an equivalence, not a
Fortran-style assignment operation.

For clarity, let's use Algol syntax for now:

It common for calculations to proceed in the direction
a := F/m ; /* denoting assignment, not definition */
as several people have pointed out.

But there are plenty of cases where the natural procedure is to calculate
F := m * a ;
such as the following:
Suppose we have a wheel spinning on an axle at some rate omega. Everything
would be in balance, except that we have attached to the wheel a mass m at
a distance r from the center. Calculate the force.

I suppose somebody sufficiently prejudiced in favor of "a := F/m" could
re-arrange the calculation to fit that model -- but such contortions do not
detract from the point that F := m*a is perfectly fine and violates none of
Newton's laws (nor any other laws).

The law in question is an equivalence, F=ma. The assignments F:=ma and/or
a:=F/m are applications of, not replacements for, the F=ma law.