https://github.com/jacquescarette/theoriesanddatastructures
Showing how some simple mathematical theories naturally give rise to some common data-structures
https://github.com/jacquescarette/theoriesanddatastructures
Last synced: 5 months ago
JSON representation
Showing how some simple mathematical theories naturally give rise to some common data-structures
- Host: GitHub
- URL: https://github.com/jacquescarette/theoriesanddatastructures
- Owner: JacquesCarette
- Created: 2017-05-09T19:19:14.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-06-13T17:48:21.000Z (about 2 years ago)
- Last Synced: 2025-07-13T10:30:24.940Z (11 months ago)
- Language: Agda
- Size: 12.7 MB
- Stars: 39
- Watchers: 9
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
TheoriesAndDataStructures
Showing how some simple mathematical theories naturally give rise to some common data-structures.
Attempting to answer the following questions:
- Why do lists pop-up more frequently to the average programmer than, say, their duals: bags?
- More simply, why do unit and empty types occur so naturally? What about enumerations/sums and records/products?
- Why is it that dependent sums and products do not pop-up expicitly to the average programmer? They arise naturally all the time as tuples and as classes.
- How do we get the usual toolbox of functions and helpful combinators for a particular data type? Are they \`\`built into'' the type?
- Is it that the average programmer works in the category of classical Sets, with functions and propositional equality? Does this result in some \`\`free constructions'' not easily made computable since mathematicians usually work in the category of Setoids but tend to quotient to arrive in \`Sets\` —where quotienting is not computably feasible, in \`Sets\` at-least; and why is that?
And lots of other stuff.