Synechepedia

Day 6: Weekend 1.1

The inconveniences of daily life are not the significant problems.

The world that scrolls past you on Twitter is not the real world.

You cannot calibrate your sense of what’s valuable and necessary to the current fashions in your field.

(Bret Victor)

I have found the daily logs quite interesting and helpful. I decided I will try extending them through the weekends.

Today’s Progress

PLT

λ⟶

I implemented let bindings for the λ⟶ implementation in themis. This should have been trivial, since let x = foo in bar is equivalent to the combined abstraction and application (λx. bar) foo, so the implementation can simply amount to the grammar rule

  exp:
  | LET; x = ID; COLON; t = typ; EQ; n = terms; IN; m = exp
    { Term.app (Term.lam x t m) n }

which transforms the let binding into the equivalent applied abstraction.

However, I forgot to arrange the rules of my lexer generator to tokenize the let and in keywords before looking for identifiers, and menhir’s default error messages for unparsable input includes no information whatsoever, so I was stumped for some time trying to figure out what was wrong. I finally wrote up an auxiliary function to display the result of lexing, which made the problem apparent immediately.

Systems F and Fω

I read on and around systems F and Fω. I am studying typed lambda calculi out of [rob2014type], which is a wonderfully clear and illuminating introduction to the subject. However, I like to skim over primary texts too when I can find them, as I find it insightful to see the context in which concepts first find their place in the world. System F was independently developed by Jeav-Yves Girard and John C. Reynolds. Since Girard’s work is in French, and I am unfortunately frenchless, I started looking over Reynold’s [reynolds74_towar]. I’ll dig into both TTFP and Reynold’s paper more tomorrow.

Community

I read Bret Victor’s What can a technologist do about climate change?, recommended by a recurser in a zulip chat. It was illuminating, inspiring and frightening. Given my own skill set and background, the recommendations for tooling under the section model-driving authoring seem most attainable and inline with the ways I work and think.

However, I was surprised to find virtually no discussion of the need to change basic values, concepts, and presuppositions. It is focused almost exclusively on encouraging innovative tech solutions that will allow us to maintain the status quo. As a counter balance, I want to spend some of tomorrow reading up on Degrwoth.

Writing

I removed the “Vibe” section of my template. That was fitting and needful when I was hyper-sensitized and full of feeling, but requiring a statement on vibe when I’m not vibrating feels forced.

Tomorrow’s Program

Surfing trip!

PLT

  • Continue reading up on System F
  • Add type checking and maybe term finding to the simply typed lc

Community

  • Read up on degrowth

References