pat scanned it. thanks pat.
Simplicity enters in four guises: uniformity (rules are few and simple), generality (a small number of general functions provide as special cases a host of more specialized functions), familiarity (familiar symbols and usages are adopted whenever possible), and brevity (economy of expression is sought). p. 20
computers understand structure and humans understand names one example of this separation is when you check for type equivalence: either you check for structural equivalence, or your check for name equivalence. because it’s easier to reason about, modern programming languages choose name equivalence. (p.118)
typoologies of programming languages:
a language without contingency, in which the context does not affect the meaning of expressions is said to be referentially transparent aka the meaning of a sentence must remain unchanged when a part of a sentence is replaced by an expression having the same meaning (frege, über sinn und bedeutung)