4 Matching Annotations
  1. Dec 2015
    1. Since ducks can both swim and fly, each duck is found twice inC, once labeled as aflyer and once labeled as a swimmer. The typesAandBare kept disjoint inC, whichjustifies the name “disjoint union.”

      The disjoint union reminds me of algebraic datatypes in functional programming languages, whereas a set-theoretic union is more like a union in CS: the union has no label associated with it, so additional computation (or errors) may arise due to a lack of ready information about elements in the union.

    2. An aspect of a thingxis a way of viewing it, a particular way in whichxcan be regardedor measured. For example, a woman can be regarded as a person; hence “being a person”is an aspect of a woman. A molecule has a molecular mass (say in daltons), so “havinga molecular mass” is an aspect of a molecule. In other words, byaspectwe simply meana function. The domainAof the functionf:A—Bis the thing we are measuring, andthe codomain is the set of possible “answers” or results of the measurement.

      Naïvely (since my understanding of type theory is naïve), this seems to mesh with the concepts of inheritance for the "is" relationships, and also with type-theory more generally for "has" relationships, since I believe we can view any object or "compound type", as defined here, as being a subtype of another type 'o' if one of its elements is of type 'o'. Though we have to be careful for functional mapping when thinking of aspects: we can't just say Int is an aspect of Pair(Int, Int), since this is ambiguous (there are two ints) --- we must denote which Int we mean.

    3. We represent eachtype as a box containing asingular indefinite noun phrase.
    4. In 1980 Joachim Lambek showed that the types and programs used in computerscience form a specific kind of category. This provided a new semantics for talking aboutprograms, allowing people to investigate how programs combine and compose to createother programs, without caring about the specifics of implementation. Eugenio Moggibrought the category theoretic notion of monads into computer science to encapsulateideas that up to that point were considered outside the realm of such theory.