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
    M

    Michael Vanier

    mvanier.livejournal.com · Personal blog · on HN since 2008

    Michael Vanier writes about programming language theory, covering the Y combinator, monads, and the choice of foundational languages.

    Visit blogHN submissions
    Languages & CompilersProgrammingMath
    What HN says

    HN commenters point to his Y combinator explanation and monad tutorial as clear, and cite his critical view of Ruby.

    Stats for nerds
    35HN people shared it
    24linked in comments
    395story points
    Aug 2023last shared
    2008people per year2023

    Top posts on HN

    1. 1
      The Y Combinator (2008)
      24 people · 331 points · first shared 2008 · 38 comments on HN
    2. 2
      The Y Combinator
      2 people · 32 points · first shared 2008 · 8 comments on HN
    3. 3
      New programming blog from Mike Vanier (of LFM/LFSP fame)
      1 person · 14 points · first shared 2008 · 2 comments on HN
    4. 4
      Why Scala Is Interesting
      1 person · 13 points · first shared 2010 · 2 comments on HN
    5. 5
      Yet Another Monad Tutorial
      3 people · 2 points · first shared 2011 · Discussion on HN
    6. 6
      “Foundational” programming languages (2009)
      2 people · 2 points · first shared 2008 · Discussion on HN
    7. 7
      The Y Combinator (Slight Return)
      1 person · 1 points · first shared 2014 · Discussion on HN
    8. 8
      1351
      1 person · first shared 2008
    9. 9
      3820
      1 person · first shared 2014

    What HN people wrote when they linked it

    • mumblemumbleJun 2021

      If it helps, I'm rather fond of this explanation: https://mvanier.livejournal.com/2897.html

      Especially this part, from toward the beginning:

      > Before I get into the details of what Y actually is, I'd like to address the question of why you, as a programmer, should bother to learn about it. To be honest, there aren't a lot of good nuts-and-bolts practical reasons for learning about Y. Even though it does have a few practical applications, for the most part it's mainly of interest to computer language theorists.

      The article goes on to explain why you should learn it, anyway, but, still, it's not like monads and Haskell. Despite the concept's intellectual cachet, you don't need to understand it to be an effective lisper. That said, this opinion is mine and mine alone, and stands in direct contradiction to the sentiment expressed in the following paragraph.

    • gtaniAug 2008

      Well, they're both foundational languages, pretty much, not in the sense of this blog, i.e. most instructional language

      http://mvanier.livejournal.com/998.html

      but in the sense of can you put up a significant web app in 2 or 3 days, do lots of companies use it (along with C, java, C#, javascript).

      r vs. p can't be reduced to 15 bullet points, but one of the best things i remember is Alex Martelli in 2003, so he was talking about ruby 1.6 and python 2.3, i believe, but still valid

      http://groups.google.com/group/comp.lang.python/msg/28422d707512283

      and here's the last thread from May.

      http://news.ycombinator.com/item?id=157269

      There's the other killer apps: Python: twisted, zope, SQLalchemy, mercurial. Ruby: rake, capistrano, rspec, adhearsion, merb, puppet, metasploit. I'm sure python has a bunch more, but i've been living in rails-land.

    • kazinatorAug 2023

      TXR Lisp:

      (defun y (f)
      [(op @1 @1)
      (op f (op [@@1 @@1]))])

      It looks like the Haskell one is calling itself by name: (y f) appears in the right hand side. That's against the spirit of the exercise. The Y combinator is a way of boostrapping the ability to have functions be able to call themselves in a language which doesn't have named functions as a primitive.

      See here: https://mvanier.livejournal.com/2897.html starting at "Deriving the Y combinator" where it presents a lazy version of Y in Scheme, similar to the Haskell one and argues that it's not valid.

      Regarding the Scheme version, there is a shorter form:

      (define (Y f)
      ((lambda (x) (x x))
      (lambda (x) (f (lambda (y) ((x x) y))))))

      This is analogous to the TXR Lisp one above which rewrites the lambda terms using op syntax.

    • jweckerApr 2015

      Fun to try with code (mildly). Here's the geekiest I could do that's worth sharing :-) http://i.imgur.com/IBaLCn4.png - based on the first stanza from the following:

      Tiger got to hunt,
      Bird got to fly;
      Lisper got to sit and wonder, (Y (Y Y))?

      Tiger got to sleep,
      Bird got to land;
      Lisper got to tell himself he understand.

      — Kurt Vonnegut, modified by Darius Bacon,

      (as quoted on this blog entry http://mvanier.livejournal.com/2897.html about y-combinators)

    • adilparvezNov 2016

      In Haskell and PureScript, Monad is a typeclass just like any other.

      They are an abstraction, effectful computation is not inherent to them, they represent computational contexts, e.g. the list monad is used to model non-determinism, the maybe monad represents computations that can fail, both of these are pure.

      This is an excellent set of posts for building an intuition about monads: http://mvanier.livejournal.com/3917.html

    • axodNov 2010

      afaik it's pretty academic. The only practical application is to allow recursion in languages that don't do recursion which is pretty much none.

      This is a good description if you're into that sort of thing: http://mvanier.livejournal.com/2897.html

      The meat of it is that you can 'do' recursion by building up functions that call other functions :/ meh

    Related

    Edward Z. Yangblog.ezyang.com165 people

    PyTorch Internals: Ezyang's Blog

    Edward Z. Yang
    Personal · last shared 2026
    Debasish Ghoshdebasishg.blogspot.com42 people

    Does category theory make you a better programmer?

    Debasish Ghosh
    Personal · last shared 2022
    The Math Less Traveledmathlesstraveled.com23 people

    Factorization diagrams in Haskell

    The Math Less Traveled
    Personal · last shared 2025
    Enfranchised Mindenfranchisedmind.com36 people

    Apple is just Microsoft with better marketing

    Enfranchised Mind
    Publication · last shared 2012
    Daniel Janusblog.danieljanus.pl20 people

    I love my GPD Micro PC

    Daniel Janus
    Personal · last shared 2026
    Best In Classbestinclass.dk46 people

    Reddit/HN clone in Clojure

    Best In Class
    Personal · last shared 2020
    Chris Smithcdsmith.wordpress.com34 people

    What to Know Before Debating Type Systems (2008)

    Chris Smith
    Personal · last shared 2026
    Bryan O'Sullivanserpentine.com49 people

    Github is making me feel stupid(er)

    Bryan O'Sullivan
    Personal · last shared 2021