Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
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

    Brian Beckman: Don't fear the Monad

    jasonofthel33t

    9 HN recommenders · recommended in 15 months, 2012–2024

    YouTube

    1:07:10 · 415K views · Nov 21, 2012

    Microsoft's Brian Beckman gives an hour-long, whiteboard-style walk through monads, building from function composition and monoids using school-level math. It is aimed at practicing programmers rather than category theorists.

    HN repeatedly recommends it as the clearest and most correct beginner explanation of monads, with several commenters saying it finally made them click.

    Software Engineering & LanguagesFunctional programmingLogic & formal methods
    1. 1:05:51
      The Functional Programmer's Toolkit - Scott WlaschinNDC Conferences79K views • 7 years ago
    2. 1:12:56
      Lecture 1A: Overview and Introduction to LispMIT OpenCourseWare421K views • 7 years ago
    3. 1:02:15
      Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScriptFullstack Academy228K views • 9 years ago
    4. 46:46
      Category Theory 1.1: Motivation and PhilosophyBartosz Milewski394K views • 10 years ago
    5. 1:07:22
      Invited Talk - Guy SteeleClojureTV39K views • 9 years ago
    6. 1:04:16
      Simon Peyton-Jones: Escape from the ivory tower: the Haskell journeyChurchill College, University of Cambridge170K views • 9 years ago
    7. 53:22
      Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim WeirichConfreaks66K views • 13 years ago
    8. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    9. 36:31
      Hey Underscore, You're Doing It Wrong!InfoQ141K views • 13 years ago
    10. 53:56
      Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojurejasonofthel33t119K views • 13 years ago
    11. 51:40
      Domain Modeling Made Functional - Scott WlaschinNDC Conferences71K views • 9 years ago
    12. 42:43
      "Propositions as Types" by Philip WadlerStrange Loop Conference144K views • 11 years ago
    13. 54:27
      Douglas Crockford: Monads and Gonads (YUIConf Evening Keynote)YUI Library67K views • 13 years ago
    14. 58:22
      Lecture 1B | MIT 6.001 Structure and Interpretation, 1986MIT OpenCourseWare116K views • 17 years ago
    15. 1:03:34
      Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic languageCurry On!19K views • 8 years ago
    16. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    17. 46:09
      Why Isn't Functional Programming the Norm? – Richard FeldmanMetosin1.6M views • 7 years ago
    18. 1:54:46
      Lenses, Folds, and TraversalsEdward Kmett54K views • 13 years ago
    19. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    20. 43:31
      Analyzing Programs with Z3Compose Conference24K views • 10 years ago

    16 comments from Hacker News

    1. @kikaApr 2016· in “Functors, Applicatives, and Monads in Plain English”

      I don't know category theory, so I defer to more knowledgeable people here, but that sounds strange: "Functor it understands how to take doStuff and execute it on the value inside itself, then spit out a new Optional. You don't lose the int-ness or optional-ness." So if I map a function, that takes an int and returns a string over an array of ints, this array stops being a functor? Or is it just a Swift thing? And, as always, I urge people spend an hour of their life and get the explanation of all this from someone who knows the math but still able to explain this in plain English: this video To the best of my limited knowledge, it's all 100% correct.

      Strongly recommendsView on HN
    2. @kikaAug 2015· in “Frege: A Haskell-Like Language for the JVM”

      To be fair, (I think) you don't need to know category theory to successfully apply FP principles and/or use any functional language. I had a great (GREAT) success at using erlang not only not knowing what monad is, but even not knowing about existence of category theory at all, leave aside monads, monoids, functors, etc. You also don't need to know category theory to understand what monad is [0] This video is all you, as a practicing programmer, need to know about monads and it's just 1 hour long. [0] this video

      Strongly recommendsView on HN
    3. @mitchtyMay 2018· in “Monads for functional programming (1995) [pdf]”

      Thats me here too! >.< Yeah the hidden subtext here was my presumption in that suggestion was someone was learning monads in Haskell and has at least a basic understanding of Haskell. Sorry if those papers threw you into the deep end. Monads really were thrown into play due to trying to make a pure functional programming language useful. I found the more mathematical explanation a lot easier than any analogies involving say burritos or pipes etc... At first glance to imperative programmers I will admit all of this just looks like a bunch of navel gazing. I thought the same thing, but once you let go of thinking of computation as a series of steps and at a bit of a higher abstraction this makes a lot more sense. For a more soft introduction to the concepts this channel 9 video is probably a bit better: this video Another option might be to just get the haskell programming from first principles book: [LINK] Does a good job grounding you up to monads and gives copious amounts of reference material. Even though I already knew haskell when I read the book it helped clear up some gaps I didn't know I had. But monads are going to be really weird no matter if all you've ever seen is imperative programming. Despite the fact that you already use them and have probably discovered them without knowing you did. Much like learning stack based programming languages, sometimes the only way up is to climb off the computational hill you're familiar with to learn another way to the other hill side

      RecommendsView on HN
    4. @emotionalcodeOct 2014· in “On becoming an expert C programmer”

      > and apparently I'm never going to understand Haskell I found this introduction to the concepts of functional programming (functional composition) to be useful: this video Otherwise, it's just a different way of thinking about problems. Instead of building things structurally as an object of objects, and then creating functions that relate, transform, or describe the relationships between the object structures (like taking a pixel object, altering it's x coordinate, and returning the new pixel object with only the x coordinate altered), one has functions that can be composed with other functions to produce more complex object structures. A single base unit with a sequence of functional compositions can describe a very fancy, complex unit, with many fancy, complex characteristics. >> Monads have also been explained with a physical metaphor as assembly lines, where a conveyor belt transports data between functional units that transform it one step at a time.[2] They can also be seen as a functional design pattern to build generic types.[3] [LINK] Otherwise, it's syntax and semantics, which I generally find annoying, but there's always google and books. [LINK]

      RecommendsView on HN
    5. @zabi_raufMay 2015· in “Monads in Elixir”

      I've seen the same video before i knew what a monad was, it helped me in understanding the use case of monad and ultimately monad. Monad is just a generalization of that particular use case. Some resources that helped me in understanding monads 1. Brian Beckman: Don't fear the Monad - this video 2. Functors, Applicatives, And Monads In Pictures - [LINK] 3. Three Useful Monads - [LINK] So its been not just one resource but multiple resource before it hit me that it was such a simple concept. So i would suggest to go over them (in order) and also look at other resources (mentioned by others).

      RecommendsView on HN