The Next 700 Programming Languages (1965) [pdf]
homepages.inf.ed.ac.uk
homepages.inf.ed.ac.uk
(c) Indentation, used to indicate program structure. A
physical IswiM can be defined in terms of an unspecified
parameter: a subset of phrase categories, instances of
which are restricted in layout by the following rule called
"the offside rule." The southeast quadrant that just contains
the phrase's first symbol must contain the entire
phrase, except possibly for bracketed subsegments.
Did this invent Python-style significant whitespace?In case anyone might be discouraged from reading the article because they don't have time to read something 160+ pages long, don't worry. It's an article extracted from a journal, and the page numbers are the page numbers from the journal issue. It's actually only around 10 pages.
LOOP has nothing to do with non-sequential execution, or anonymous scoped blocks (read: 'where' clauses).
"Always bisexual, he threw himself into the politics of the Gay Liberation Front in the early 1970s. He separated amicably from his wife in 1973, and was closely in touch with her and his children till his death. For the rest of his life he pursued gay politics, and his house in Rona Road, Camden, became a gay commune. Always more of a facilitator than an activist, he saw many plots hatched at his dinner parties. Aids: the Musical! was conceived there, as was the reinvigoration of Gay Pride marches in the mid-80s, just in time for the battle over Clause 28. Towards the end of his life, Peter became convinced that computing had been a bad idea, giving support to profit-taking corporate interests and a surveillance state, and that he had wasted his energies in promoting it. But whether he liked it or not, his ideas underpin developments to this day."
That said, it does feel like the ML and Haskell communities really have taken up that spirit, with their emphases on multiple implementations and relatively ease of extension.
x(x - k a)
where x = b + 2c
Now imagine ‘+’ and ‘-’ have side-effects, like a log message. What would the output be? ‘+-’, ‘++-’ or ‘+-+’? Certainly not the ‘-+’ order as they appear in the code, which is causally impossible.The paper restricts to pure functions, where this is not an issue. But it does seem to violate a widely followed implicit rule that lines of code are in strict causal order, with well-defined explicit exceptions for control flow.
If the where-clause offends you, use a let-clause instead?