Skip to content

Instantly share code, notes, and snippets.

View michaeljklein's full-sized avatar

Michael J Klein michaeljklein

View GitHub Profile
0 Introduction
0 : "nothing"    :     point :    square :     cube :    hypercube :     Flock :
0 : Do           :        1  :        2  :       3  :           4  :        5  :
1 : Cat          :       (1) :       (2) :      (3) :          (4) :       (5) :
2 : Dur          :        2  :        2  :      (3) :          (4) :       (5) :
3 : Lit          :        3  :        3  :       3  :          (4) :       (5) :
4 : Nat          :       (4) :       (3) :      (2) :           4  :       (5) :
5 : End          :        4  :        3  :       2  :           1  :        0  :
5 : Flock : hypercube : cube : square : point : "nothing" :

polymorphism:

categorical polymorphism: use with any categories that fit the explicit requirements

  • categorical polymorphism: use with any categorization (type-system) of categories that fits
  • durational polymorphism: use with any length of categories (digraph width) that fits
  • semantic polymorphism: use with any categorical semantics (associative + identity) that fit
  • natural polymorphism: use with any categorical enumeration (e.g. categorical induction) that fits

durational polymorphism: use with any models of duration that fit the explicit requirements

  • categorical polymorphism: use with any categorization (type-system) of durations that fits

The dependencies of the [blocks?] form a labeled spanning tree of the hypercube These labels allow us to form a regular tree language, which is what is used to parse/metaprogram/type-check/evaluate Flock.

It is isomorphic to the structure of any complete Flock:

  • diagram
  • AST
  • dependencies (proof, implementations, choices, etc)
  • parser
  • interpreter
  • compiler
  • Mindfulness meditation is one of the best ways I know to live faster without dying faster
  • Tell a man to not be lazy, and his spirit may only hear "work hard". Tell a man to work hard and his spirit may learn to not be lazy.
1. Object (simple) Categories
2. Morphism (e.g. functor) categories
3. Compositional categories (functor dependency categories)
4. Cyclic categories (push/pull categories)

Since high-school, I've had a steady stream of interesting, personal mathematical projects.

Over the course of high-school and college, I've gained skills in organization and programming, which has led to more programming projects, though still very centered around mathematics.

During my time at Authorea, motivated by having less time and my work with Authorea's technical difficulties, I began collecting projects into larger groups, culminating with my "dream project": writing my own programming language.

What I'm calling "the paper" is a self-contained description, explanation, and argument for this language.

Because it's so organized and I've known it was the goal for months, it's almost done: with only about two weeks of dedicated writing. (There's more work left after "done" to make it pretty and ready for publication, by "done" I mean done with writing the proofs, explanations, definitions, details, etc.)

We need to consider (Cat..) as the outer category for push/pull cycle.

We need to define endofunctors for Cat, Dur, Lit, Nat. How can we do this?

Well it needs to be of the form:

f : CatX -> CatX
f : CatX(a) -> CatX(a)
f : CatX(a -> b) -> CatX(a -> b)

http://www.rollingstone.com/culture/news/steve-jobs-in-1994-the-rolling-stone-interview-20110117

Machines have gotten smaller, faster and cheaper.
Software, by contrast, has gotten bigger, more complicated and much more expensive to produce.
Writing a new spreadsheet or word-processing program these days is a tedious process,
like building a skyscraper out of toothpicks. Object-oriented programming will change that.
To put it simply, it will allow gigantic, complex programs to be assembled like Tinkertoys.
Instead of starting from the ground up every time, layering in one line of code after another,
programmers will be able to use preassembled chunks to build 80 percent of a program, thus
saving an enormous amount of time and money. Because these objects will work with a wide range