Skip to content

Instantly share code, notes, and snippets.

@uucidl
Last active November 4, 2016 11:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save uucidl/68e5dd6ba607e68962b0e843a6132275 to your computer and use it in GitHub Desktop.
Save uucidl/68e5dd6ba607e68962b0e843a6132275 to your computer and use it in GitHub Desktop.
Generality

https://youtu.be/CAlU_hs_rZ8?t=3069

It’s good to generalize when things get simpler in generality. I.e. general case vs case analysis

This seems to have similarities to the practice of Topology in Mathematics (of which I’m no expert of) in how they squash degerate cases.

Discipline Of Programming by Dijkstra:

  • there are useful and useless generalizations

Good practices:

Concepts are defined if they are useful. A concept for which there is only one model (example, a constant size sequence is modeled only by array[k]) or for which there are no particular algorithms does not need to be introduced.

There are such things as concept schemas, for which there is no particular algorithm yet define a rough schema for a bunch of concepts. An example: composite objects and their properties of non-circularity, disjointness and ownership.

Note: concepts are called theories in mathematics

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment