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.
What HN saysCommenters point to it as the best explanation of fexprs and interpreted languages, and as the only place he published his physics ideas.
23HN people shared it
10linked it in comments
16stories submitted
94story points
3 months agolast shared
2011people per year2026
Most-shared posts
- 1Homepage4 people · first shared 2012
- 2Interpreted Programming Languages (2016)3 people · 4 points · first shared 2019 · discussion on HN
- 3Where do types come from?2 people · 23 points · first shared 2011 · 16 comments on HN
- 4The trouble with monads2 people · 8 points · first shared 2012 · discussion on HN
- 5Structural insight: Primacy of syntax2 people · 6 points · first shared 2011 · discussion on HN
- 6Structural insight: Co-hygiene and quantum gravity2 people · 2 points · first shared 2017 · discussion on HN
- 7Structural insight: Fexpr2 people · 2 points · first shared 2011 · discussion on HN
- 8The great vectors-versus-quaternions debate (2014)1 people · 37 points · first shared 2020 · 3 comments on HN
- 9Dangerous things should be difficult to do by accident1 people · 4 points · first shared 2026 · discussion on HN
- 10Bypassing no-go theorems1 people · 3 points · first shared 2013 · 1 comments on HN
- 11Guarded Continuations1 people · 2 points · first shared 2012 · discussion on HN
- 12Sapience and language1 people · 2 points · first shared 2016 · discussion on HN
- 13Natural intelligence1 people · 1 points · first shared 2016 · discussion on HN
- 14The co hygiene principle1 people · first shared 2020
- 15Interpreted programming languages1 people · first shared 2017
What HN people wrote when they linked it
agumonkey · 2024-05-02
oh, reading his previous blog article I see that J. Shutt (he made kernel, reviving fexpr in a way) commented
https://axisofeval.blogspot.com/2011/08/notes-on-delimited-continuatio…
and that he has a blogger (last entry in 2020 though) https://fexpr.blogspot.com/
rileyphone · 2022-06-07
In that case, I would recommend reading this post. Shutt explains it much better than I can.
https://fexpr.blogspot.com/2011/04/fexpr.html
spindle · 2021-03-01
Yes, his blog: https://fexpr.blogspot.com. As far as I know he never published his physics ideas anywhere else.
mudderkugle · 2019-11-24
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” ...
sparkie · 2017-11-04
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…
tl;dr: The choice of compiled vs interpreted is made early on and greatly affects the design of the language semantics early on.
JadeNB · 2012-04-29
This is an implementation of (as the name suggests!) Scheme without special forms, inspired by John Shutt's Kernel language. See http://web.cs.wpi.edu/~jshutt/kernel.html, http://lambda-the-ultimate.org/node/1680, and http://fexpr.blogspot.com for more discussion, and http://axisofeval.blogspot.com/2011/09/kernel-underground.html for implementations.
Ericson2314 · 2021-08-29
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.h…
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.
youzicha · 2024-02-23
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?showC…
Kednicma · 2020-08-20
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…
jhuni · 2013-02-24
> 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…