Top all-time · #667
Andrej Bauer
Personal blog · math.andrej.commathprogrammingphilosophy
Andrej Bauer writes Mathematics and Computation, a personal blog at math.andrej.com about math, programming and philosophy. Since 2007, 95 different Hacker News readers have linked it 124 times, most often “Seemingly impossible functional programs (2007)”. It is still writing: the last post was on 2026-07-10, and you can follow it by feed.
Sometimes recommended · 11 of 40 sampled comments recommend it?
Why HN links it
HN readers link Andrej Bauer's blog for explanations of algebraic effects, constructive mathematics and computability, and as a pointer to his Eff language.
- Recommended for · 11 comments
- Called a great introduction to algebraic effects and a great resource; one commenter found older posts fascinating.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Seemingly impossible functional programs (2007)14 people · 15 mentions · first linked 2007-09-29
- Eff, a language with an algebraic effect system6 people · 8 mentions · first linked 2012-03-08
- Representations of Uncomputable and Uncountable Sets (2008)5 people · 5 mentions · first linked 2008-03-05
- Intuitionistic mathematics for physics5 people · 5 mentions · first linked 2009-02-17
- Hask is not a category5 people · 5 mentions · first linked 2016-08-06
- Five stages of accepting constructive mathematics5 people · 5 mentions · first linked 2017-02-12
- Sometimes all functions are continuous (2006)4 people · 5 mentions · first linked 2014-04-15
- Programming with Algebraic Effects and Handlers4 people · 5 mentions · first linked 2012-03-14
- Two dozen mathematicians wrote a 600 page book in 6 months on GitHub4 people · 4 mentions · first linked 2013-06-20
- Proof of negation and proof by contradiction (2010)4 people · 4 mentions · first linked 2013-03-11
What Hacker News says?
Given that your handle has "racket" in it, I'll assume that you're a call/cc kinda guy. Even if you're not, others may enjoy this argument against call/cc by Oleg: http://okmij.org/ftp/continuations/against-callcc.html Delimited continuations are a huge improvement over undelimited ones, but still, by themselves, any kind of continuations feel like (to me) the GOTOs of functional programming. More recently, people a…
Comment linking /eff/
on “Callbacks as our Generation's Goto Statement”Submitted Two dozen mathematicians wrote a 600 page book in 6 months on GitHub as a story · 309 points
HN discussionYou misread their type. There is no bijection N -> (N -> 2); {0,1}* = 2* = N -> 2. Note that the given proof is a version of Lawvere's fixed-point theorem. The trick is noticing that for some x : N, f : N -> (N -> 2) can be applied onto it twice, giving f(x) : N -> 2 and f(x)(x) : 2. Note further that infinite binary strings don't just represent natural numbers. Indeed, every natural number has a finite binary strin…
Comment linking /2007/09/28/seemingly-impossible-functional-programs/
on “How many real numbers exist? New proof moves closer to an answer”Submitted Seemingly impossible functional programs (2007) as a story · 191 points
HN discussion>Any algorithm can be formalised in e.g. a Turing machine, or any other equivalent universal model of computation Quoting http://math.andrej.com/2006/03/27/sometimes-all-functions-ar... >>The lesson is for those “experts” who “know” that all reasonable models of computation are equivalent to Turing machines. This is true if one looks just at functions from N toN. However, at higher types, such as the type of our fun…
Comment linking /2006/03/27/sometimes-all-functions-are-continuous/
on “Ask HN: How to self-study physics?”Submitted The Dawn of Formalized Mathematics as a story · 127 points
HN discussionI don't see Penflip as a replacement for Google Docs, but there are some cases where Docs breaks down - specifically when there are too many collaborators and when the content is too complex. Another interesting aspect is the need for multiple versions of the same core content - like a syllabus or textbook - with minor variations and modifications as needed. Something like this is unacheivable with Google Docs. For…
Comment linking /2013/06/20/the-hott-book/
on “Introducing government.github.com”Submitted The new and improved Programming Languages Zoo as a story · 118 points
HN discussionHoTT authors said that distributed version control helped a lot (for both productivity/creativity and spirit of scientific openness) http://math.andrej.com/2013/06/20/the-hott-book/
Comment linking /2013/06/20/the-hott-book/
on “Why Microsoft Word must die”Submitted Space-filling curves, constructively as a story · 113 points
HN discussionI am interested in computation. Period. Not any particular model of computation (programming language); and not merely computation with functions from N->N. Quoting from " http://math.andrej.com/2006/03/27/sometimes-all-functions-ar... " "The lesson is for those “experts” who “know” that all reasonable models of computation are equivalent to Turing machines. This is true if one looks just at functions from N to N. H…
Comment linking /2006/03/27/sometimes-all-functions-are-continuous/
on “Parse, Don't Validate (2019)”Submitted Seemingly impossible functional programs (2007) as a story · 87 points
HN discussionThere are some subtleties there. Andrej Bauer covers them well: http://math.andrej.com/2010/03/29/proof-of-negation-and-proo...
Comment linking /2010/03/29/proof-of-negation-and-proof-by-contradiction/
on “Every odd number greater than five is the sum of three primes”Submitted Seemingly impossible functional programs (2007) as a story · 81 points
HN discussionAs someone who studies both CS and pure math, it's quite interesting when I see posts that take a very operational reading of functors and monads, instead of its shorter and more precise categorical definition (as a mapping from one category to another that acts homomorphically over morphisms). That's not necessarily wrong, but it's an important thing to keep in mind when learning category theory through a programmi…
Comment linking /2016/08/06/hask-is-not-a-category/
on “Functors and Monads for People Who Have Read Too Many “Tutorials””Submitted Computing an integer using a Grothendieck topos as a story · 75 points
HN discussionComputably countable is also a correct term. In line with this approach to computability theory: http://math.andrej.com/asset/data/synthetic-slides.pdf It shows that the unsolvability of the halting problem follows from: - The computable uncountability of N^N, which can be proved using an identical argument to the one Cantor used to prove the set-theoretic uncountability of N^N. - The computable countability of the…
Comment linking /asset/data/synthetic-slides.pdf
on “Turing Oversold?”Submitted Sometimes all functions are continuous (2006) as a story · 60 points
HN discussionBtw, the blog author, Andrej Bauer, is an amazing guy. I was really fascinated by some of his older blog publications (and I was only scratching the surface): http://math.andrej.com/2007/09/28/seemingly-impossible-funct... (by Martin Escardo, an article about a Haskell program doing exhaustive search over the “Cantor space” of infinite sequences) http://math.andrej.com/eff/ (Language Eff, a functional programming la…
Comment linking /eff/
on “Two dozen mathematicians wrote a 600 page book in 6 months on GitHub”Submitted Hask is not a category as a story · 54 points
HN discussionAlgebraic effects seem very interesting. I have heard about this idea before, but assumed that it somehow belonged into the territory of static type systems. I am not a fan of static type systems, so I didn't look further into the idea. But I found these two articles [1] about an earlier dynamic version of Eff (the new version is statically typed), which explains the idea nicely without introducing types or categori…
Comment linking /2010/09/27/programming-with-effects-i-theory/
on “Why Algebraic Effects?”Submitted Representations of Uncomputable and Uncountable Sets (2008) as a story · 45 points
HN discussionA more advanced example of mutual recursion: it's possible to perform an exhaustive search over the "Cantor space" of all infinite sequences of bits that either finds a sequence satisfying a (total, computable) predicate or determines that such a sequence doesn't exist. That is to say, there's a function `search`, type Cantor = Natural -> Bit search :: (Cantor -> Bool) -> Maybe Cantor that returns in finite time if…
Comment linking /2007/09/28/seemingly-impossible-functional-programs/
on “Ask HN: What piece of code/codebase blew your mind when you saw it?”Submitted Intuitionistic mathematics for physics as a story · 41 points
HN discussionfoo :: a -> (b -> c) Not saying it's wrong, but "foo is a second-order function" is a distinctly minority opinion. To a useful first approximation, Haskell works as a cartesian-closed category, which basically means we have tuples and that tuples harmonize with functions so that foo behaves just like uncurry foo :: (a,b) -> c which is a first-order function. So the majority opinion calls foo a first-order arity-2 fu…
Comment linking /2006/03/21/interesting-higher-order-functionals/
on “Where Do Type Systems Come From?”Submitted Proof of negation and proof by contradiction (2010) as a story · 40 points
HN discussionHonestly, the entire part of the post before getting to categories is what I think is most useful for the broadest range of people. We often look at "logic" and "mathematics" as one thing, and even more than that, we look at them as absolutes - if something is mathematically proven, it is certainly a fact, no? Well, it turns out even here there are still shades of gray, and the difference between classical and intui…
Comment linking /2012/10/03/am-i-a-constructive-mathematician/
on “Category Theory Illustrated – Logic”Submitted Python’s lambda is broken as a story · 31 points
HN discussionEvery time I've studied Category Theory I've later found a better, simpler, easier to understand, cleaner approach to doing the same thing, perhaps with a little mutation. And then there's languages like Eff that completely remove the need for stuff like monads: http://math.andrej.com/eff/ So yeah, for me it's been more-or-less a waste of time reading up on this stuff.
Comment linking /eff/
on “Category Theory for Programmers (2014)”Submitted On programming language design as a story · 25 points
HN discussion