Home About Subscribe Search Member Area

Humanist Discussion Group

< Back to Volume 34

Humanist Archives: May 21, 2020, 8:58 a.m. Humanist 34.39 - punctuation in the assignment statement

                  Humanist Discussion Group, Vol. 34, No. 39.
            Department of Digital Humanities, King's College London
                   Hosted by King's Digital Lab
                Submit to: humanist@dhhumanist.org

    [1]    From: Willard McCarty 
           Subject: the question lurking in the small matter of punctuation (76)

    [2]    From: Norman Gray 
           Subject: Re: [Humanist] 34.27: punctuation in the assignment statement (95)

        Date: 2020-05-20 15:43:15+00:00
        From: Willard McCarty 
        Subject: the question lurking in the small matter of punctuation

Several helpful replies to my question about the colon in the ALGOL
convention for the principal operator in an assignment statement, ':=',
spur me to come out of hiding and say what my basic question is.

I'm looking for evidence concerning the realisation or conviction that
software, though mathematical in some sense, is "mathematics with a
difference", as Mahoney wrote in "Computer science: The search for a
mathematical theory".* To ask whether software is mathematics
or is essentially mathematical, expecting a yes-or-no response even 
if with arguments, seems to me too crude an instrument. So,
I am wanting to ask, what is software in relation to mathematics? I
don't assume that either is a well-defined (or confined) thing.

Software is a useful, indeed powerful tool for checking proofs and for
exploring mathematical ideas, no question. Important aspects of
software, esp in relation to algorithms, are undeniably mathematical
(but note the difference in tightness of connection between the noun
'mathematics' in an identity statement and its adjective, which 
qualifies in recognition of a relation). I want to avoid confining 
either software or mathematics to its applications, important though 
these are. A common move is to call software 'applied mathematics', 
but this is not helpful when it simply categorises. 'Applied 
mathematics' does raise the very helpful question of the history
of this term and of 'mixed mathematics' before it. The history of 
these terms in turn gives us even more reason to look into 
'ethnomathematics', or as one person has called it, "mathematics 
everywhere". In the wake of Hacking's monograph Why is there a 
philosophy of mathematics at all? (2014), his YouTube'd lecture, 
"The mathematical animal" (2012) and other work on the subject,** 
I'd think it might be better to look for instances in which
assumptions that seem to settle the matter run into serious trouble,
encounter resistance and the like. So, I am looking for trouble!

Is there a trace of such in the ':='? We can dismiss the question by
arguing that at the time of ALGOL 58 there was no proper character 
for the relation of assignment (which Perlis somewhere brilliantly 
translated "becomes"). We can brush the matter aside by saying that 
no one notices nowadays, or in the delightful manner of Grace Hopper, 
that at the time, under pressures of the moment, "no one gave a hoot". 
But someone (Backus?) chose the colon over other characters available 
on the IBM 029 Card Punch. I wonder, what's wrong with '->'? 

An aside. I must confess, that as a former literary critic first 
trained in the school of New Criticism and as someone trained in the 
design of books, I don't want to take the slightest little thing about 
any text as potentially without significance.

That ':=' is a convention does not mean that with the question of 
software and mathematics hanging in the air it is empty of meaning. We
talk easily about fossilised metaphors, but that is a bad metaphor!
Fossils do not come alive as metaphors can. And, I think, metaphors, 
however much worn down to a cliché, are never totally inert. Freud 
taught us as much. So, when we read or write ':=' is it possible to 
hear (to paraphrase Dr Johnson) two quite heterogeneous ideas yoked 
by violence together? 

Sorry if this is muddled. I'm asking questions, not taking a position
other than that from which the matter of software and mathematics is
questionable. Anyhow, thanks for any further thoughts.


*In John Krige and Dominique Pestre, eds. Companion to Science in the
Twentieth Century. London: Routledge, 1997, pp. 617-49.
**See https://www.youtube.com/watch?v=E8f-5Ipdy5U; see also "What makes
mathematics mathematics?", in Mircea Pitici, ed. The Best Writing on
Mathematics 2011. Princeton: Princeton University Press, 2012.
Willard McCarty (www.mccarty.org.uk/),
Professor emeritus, Department of Digital Humanities, King's College
London; Editor, Interdisciplinary Science Reviews
(www.tandfonline.com/loi/yisr20) and Humanist (www.dhhumanist.org)

        Date: 2020-05-20 09:22:10+00:00
        From: Norman Gray 
        Subject: Re: [Humanist] 34.27: punctuation in the assignment statement

Willard, hello.

I feel there may be less to this than meets the eye.

On 18 May 2020, at 11:26, Humanist wrote:

> Many have objected [to use of '=' rather than ':=' ] for very good
> reasons, mostly
> on the grounds that students who come to programming with a background
> in maths tend to become confused.

Do they really?  Or if they did, do they still?  Nowadays, I imagine
there are very few people whose contemporary education has been so
eccentric that they have been thoughtful about maths before they were
taught any programming.

While it's true that there it is quite possible to be very confused
about what '=' means in a programming language, it generally means just
one thing -- assignment -- rather than the various things, including
assignment, that '=' might mean in a mathematical context.  It's true
that (I think) Algol used ':=' to mean assignment and '=' to mean
equality in a test; C and friends use '=' for assignment and '==' to
refer to an equality test; but I think there are few mainstream
languages which haven't settled for '=' meaning just assignment.

In a mathematical text, in contrast, depending on the context, '=' might
involve the contingent assertion that two things are equal, as a
(pre)condition or a deduction; that two things are equivalent, in the
sense that 'x = y + z' means that 'x' is defined to be a shorthand for
'y+z'; it might refer to an assignment at the start of an algorithm.  It
might be clear from context which of the various precise meanings the
symbol has, but the author of the text may decide, as a matter of style
or precision, that it is useful to spell out the distinction.

In spelling out, there is no absolute convention.  Equivalence might be
expressed by a triple-barred equals sign, by an equals sign with a
delta, or a 'def', above it, or perhaps others I haven't recalled just
now.  I think I may have seen ':=' as an assignment in a mathematical
context, but I may be making that up.  I don't recall seeing
leftward-pointing arrows in this context, but wouldn't be surprised to
see that in 'purer' areas of maths (a rightward-pointing arrow would be
a mapping rather than an assignment, and it would be very confusing, to
me at least, to see that used as assignment).

Generally authors are free to define whatever relations they need, and
to notate them as they see fit, as long as they explain adequately
clearly what the relations are.  There are of course strong disciplinary
conventions, and a referee would doubtless object if an author starts to
be confusingly creative, but there's a wide range of possibilities [1].

> My question is this: why the colon? What was this mark of punctuation
> meant to suggest, or better, what would it have suggested and what
> does
> it continue to suggest? The OED note on the colon as a mark of
> punctuation (rather than as a part of our anatomy) is a succinct
> statement of the conventional sense that would have been nigh
> universal
> in English usage in the mid 20th Century:
>> Its best defined use is to separate clauses which are grammatically
>> independent and discontinuous, but between which there is an
>> apposition or similar relation of sense. Thus it may introduce an
>> antithetic statement, an illustration, extract, etc.

That's fair: a colon in mathematical texts often has an explicatory
sense.  You could define the square-root function as

     { x : x^2 = 2 }

pronounced 'the set of x, such that x squared is two', but there are
other places where colons are used.

So in answer to the question 'why the colon?' I think the answer is
merely that the colon has a broadly explicatory sense, someone thought
it would be a good idea, once, and it stuck.

Best wishes,


[1] The American Mathematical Society's 'amsmath' package defines a
number of more-or-less common possibilities.  See Tables 3.6 and 3.7 of
I notice this doesn't include a pre-composed symbol corresponding to
':=' (there's a slightly crazy 'comprehensive' list of symbols at

Norman Gray  :  https://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK

Unsubscribe at: http://dhhumanist.org/Restricted
List posts to: humanist@dhhumanist.org
List info and archives at at: http://dhhumanist.org
Listmember interface at: http://dhhumanist.org/Restricted/
Subscribe at: http://dhhumanist.org/membership_form.php

Editor: Willard McCarty (King's College London, U.K.; Western Sydney University, Australia)
Software designer: Malgosia Askanas (Mind-Crafts)

This site is maintained under a service level agreement by King's Digital Lab.