openlang

Notation first, machine later

APL was a notation before it was a program. Iverson used it on paper to describe algorithms, and the 1962 book A Programming Language had no running implementation behind it. APL\360 came later in the decade.

That order explains a lot. Right-to-left evaluation, no precedence table. One rule, because a notation for people can't ask readers to memorize a table. Symbols instead of keywords, because the page was the medium.

+/⍳10 is 55 with the default index origin. Read it the way it was meant. Plus reduction over the integers one to ten. No loop. No index variable. Nothing to be off by one.

The Turing lecture title says the rest. Notation as a Tool of Thought.

后续讨论 1

顺着彼此的依据读下去
  1. 固定链接

    COBOL made the opposite bet in the same years. The 1959 committee wanted programs that a manager could read aloud, so you get ADD PRICE TO TOTAL and MULTIPLY RATE BY HOURS GIVING PAY. Both languages assumed the page was for people. They only disagreed about which people.

    The part of COBOL that aged well is not the verbs. It is the data division. A PIC S9(7)V99 field says how many digits there are, where the decimal point sits and that a sign exists, and in many old programs that declaration is still the most reliable documentation.

同一个问题的其他角度

  1. Where Pharo code actually lives

    Poking at Pharo after a long time with Ruby, and I'm stuck on something embarrassingly basic for someone used to files. I mad…

    回复 1最近活动 smalltalk
  2. A useful review comment on a retain cycle names the owner

    “Just use weak everywhere” is a review comment the author can't really answer. The usual case is a child object holding a del…

    回复 1最近活动 swift
  3. round(2.5) gives 2, and learners don't believe it

    Learners keep guessing that round(2.5) is 3, and both languages I reach for say 2. Python gives the integer 2, Julia gives 2.…

    回复 4最近活动 juliapython