Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    F

    Fexpr (John Shutt)

    fexpr.blogspot.com · Personal blog · on HN since 2011

    John Shutt, designer of the Kernel language, writes on fexprs, programming language theory, and speculative ideas linking physics and computation.

    Visit blogHN submissions
    Languages & CompilersProgrammingPhysics
    What HN says

    Commenters point to it as the best explanation of fexprs and interpreted languages, and as the only place he published his physics ideas.

    Stats for nerds
    23HN people shared it
    16linked in comments
    94story points
    May 2024last shared
    2012people per year2024

    Top posts on HN

    1. 1
      The great vectors-versus-quaternions debate (2014)
      1 person · 37 points · first shared 2020 · 3 comments on HN
    2. 2
      Where do types come from?
      2 people · 23 points · first shared 2011 · 16 comments on HN
    3. 3
      The trouble with monads
      2 people · 8 points · first shared 2012 · Discussion on HN
    4. 4
      Structural insight: Primacy of syntax
      2 people · 6 points · first shared 2011 · Discussion on HN
    5. 5
      Interpreted Programming Languages (2016)
      3 people · 4 points · first shared 2019 · Discussion on HN
    6. 6
      Dangerous things should be difficult to do by accident
      1 person · 4 points · first shared 2026 · Discussion on HN
    7. 7
      Bypassing no-go theorems
      1 person · 3 points · first shared 2013 · 1 comments on HN
    8. 8
      Structural insight: Co-hygiene and quantum gravity
      2 people · 2 points · first shared 2017 · Discussion on HN
    9. 9
      Structural insight: Fexpr
      2 people · 2 points · first shared 2011 · Discussion on HN
    10. 10
      Guarded Continuations
      1 person · 2 points · first shared 2012 · Discussion on HN

    What HN people wrote when they linked it

    • jhuniFeb 2013

      > Number theory/abstract algebra, which is the study of natural numbers among other things, is a form of set theory.

      Let S be the set {a,b} and let T be the set {c,d}. There are two bijections S -> T between these two sets {(a,c),(b,d)} and {(a,d), (b,c)}. These two sets are isomorphic to one another because they have the same cardinality.

      The isomorphism classes of sets are cardinalities which are themselves the natural numbers 0,1,2,3,... and infinity. In combinatorics we can just focus on the study of these isomorphism classes rather then sets themselves.

      We can enumerate binary relations: ([],[0],[1],[[0 0],[0 0]],[[0 0],[0 1]],[[0 0],[1 0]],[[0 0],[1 1]],[[0 1],[0 0]],[[0 1],[0 1]],[[0 1],[1 0]],[[0 1],[1 1]]). Logical disjunction [[0,1],[1 1]] is equal to 10 in this enumeration.

      Using the enumeration of binary relations the entire field of study of graph theory can be described in terms of natural numbers without any need for sets. As a result, graph theory is considered to be a branch of combinatorics. We only need to have sets mathematically when dealing with cardinalities like aleph one that emerge from uncountable sets.

      Since analytic number theory deals with the uncountable set of real numbers and abstract algebra deals with operations on sets including the real numbers, these two fields are indeed founded on set theory. Algebraic combinatorics and combinatorial number theory are the branches of these two fields that focus on countable sets.

      > And set theory…

    • KednicmaAug 2020

      I'm reminded of the Zen koan where the students cannot tell whether the flag is moving in the wind or the wind is moving around the flag. The master tells them that the mind, neither the flag nor the wind, is what is moving.

      Both sides of the interpretative coin are needed. We must simultaneously understand that QM is epistemic and also that QM is contextual. The author asks,

      > How do probabilities get into QM?

      Because knowledge of physical systems is always limited and QM is epistemic, all quantities we manipulate in QM are probabilistic. Further, the Kochen-Specker Theorem requires that some measurements be not fully determined by past history, as a matter of living in at least three dimensions of space. Finally, basic linear logic allows us to replicate most of QM's effects with macrostates.

      While Schrödinger hated this and used his famous cat thought-experiment to try to refute it, children learn about linear logic and probabilities in macrostates when they are given random toys or packs of trading cards, and today we recognize that it really is possible to condition relatively large differences in macrostate observations on single entangled or otherwise-prepared microstates.

      > In the [Everett] realist approach the history of the world is endlessly splitting;

      Eh, kind of? But it's also endlessly joining. We wouldn't just be in a "cosmic history" which is "sufficiently benign" for us, but also we're likely to be in a likely history. In fact, we're exactly as likely…

    • youzichaFeb 2024

      Indeed. I think this something that people are often confused about, e.g. one blogger[0] comments:

      > The key to understanding the fixpoint theorem, for me anyway, was realizing that when it says FG=G, it does not mean that for every F there is a G such that by calling F with parameter G one can get back G. I mention this in the blog post, above. The equality operator in FG=G is the equivalence relation induced by the calculus rewriting relation: that is, it's the symmetric reflexive transitive closure of the rewriting step relation. When you look at the proof of the theorem, it actually works by constructing an expression G such that evaluating G produces, as an intermediate result, FG. There is no need for F to even be a function, and if F is a function it doesn't matter what, if anything, F would actually do when called, because the proof of the theorem doesn't involve calling F.

      I think the name "fixpoint combinator" is kindof bad, it it was called e.g. the "recursion combinator" I think people would find it more intuitive.

      [0] https://fexpr.blogspot.com/2013/07/bypassing-no-go-theorems.html?showComment=1385649732798#c4614180298503254427

    • Ericson2314Aug 2021

      For the style of programming described in this post, skip all this common lisp smalltalk nostalgia. The real epitome is Kernel with its fexprs http://web.cs.wpi.edu/~jshutt/kernel.html, and also the creator's philosophical insight in https://fexpr.blogspot.com/2016/08/interpreted-programming-languages.html

      It's not my cup of tea, but I respect him for doing something different and taking this thread out of the haze and to its conclusion.

    • sparkieNov 2017

      Some languages cannot be compiled because their behavior is dependent on runtime values. An example is John Shutt's Kernel language.

      Here's what Shutt has to say about the difference between interpreted and compiled languages: https://fexpr.blogspot.co.uk/2016/08/interpreted-programming-languages.html

      tl;dr: The choice of compiled vs interpreted is made early on and greatly affects the design of the language semantics early on.

    • mudderkugleNov 2019

      John Shutt : https://fexpr.blogspot.com/ https://web.cs.wpi.edu/~jshutt/play.html

      He designed Kernel Programming Language, a very neat lisp that allow to exploit and reason about the semantics powers that lisp has binged over the years (symbolic, continuations, encapsulation …).

      I also highly appreciates the articles that he writes in his blog, they gave me “insights” ...

    Related

    n-Category Cafégolem.ph.utexas.edu134 people

    Galois Theory

    n-Category Café
    Publication · last shared 2026
    Jon Sterlingjozefg.bitbucket.org19 people

    Leaving Go

    Jon Sterling
    Personal · last shared 2016
    Learning Clojurelearningclojure.com15 people

    An Introduction to the Lambda Calculus (2015)

    Learning Clojure
    Personal · last shared 2020
    Oleg Kiselyovokmij.org251 people

    How the OCaml type checker works (2022)

    Oleg Kiselyov
    Personal · last shared 2026
    Existential Typeexistentialtype.wordpress.com157 people

    Haskell Is Exceptionally Unsafe (2012)

    Existential Type
    Personal · last shared 2026
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Ron Garretflownet.com128 people

    Lisping at JPL (2002)

    Ron Garret
    Personal · last shared 2026
    foonathanfoonathan.net35 people

    Carbon’s most exciting feature is its calling convention

    foonathan
    Personal · last shared 2026