[Haskell-cafe] Some thoughts on Type-Directed Name Resolution

AntC anthony_clayden at clear.net.nz
Tue Feb 7 01:41:48 CET 2012

Richard O'Keefe <ok <at> cs.otago.ac.nz> writes:

> On 4/02/2012, at 12:13 AM, Gábor Lehel wrote:
> > 
> > All of this said, record.field is still the most readable, intuitive,
> > and familiar syntax for selecting a field from a record that I know
> > of.
> Having learned COBOL and Algol 68 before Haskell was dreamed of,
> I regard
> 	field OF record
> as the most readable, intuitive, and familiar syntax.  Given our
> background in reading natural language text, most of us probably
> thought once upon a time that '.' was the most readable, intuitive,
> and familiar syntax for terminating a statement, and in COBOL, NDL,
> and Smalltalk, it _is_.  There's certainly nothing about a dot
> that suggests field selection, *unless* you happen to be familiar
> with a programming language that does it that way. ...
Richard, now you're just being playful.

Database access languages used record.field since COBOL days (well certainly 
before SQL in 1969).

    Assembler and linker languages often allowed dots within names.
    I presume IPv4 dot-decimal comes from this.

I think the use of dot comes from section and sub-section numbering in large 
documents. I have no idea when that dates from, but off the top of my head:

    Principia Mathematica, Russell and Whitehead 1910
    Tractatus Logico-Philosophicus, Wittgenstein, 1918

(Admittedly Princ Math also uses dot (infix operator) as logical product. As 
well, there's a dot separator between a quantifier's list of bound variables 
(upside-down A, backwards E) and the bound term. Church's lambda notation 
similarly uses a dot to separate the bound variables.)

There is one 'odd man out' when it comes to dot notation:
A few little-known programming languages have for some reason bucked the well-
established convention of small circle for function composition.

There's certainly nothing about a dot that suggests function composition, 
*unless* ...


More information about the Haskell-Cafe mailing list