Skip to content
0:00 / 0:00

#monads#haskell#maybemonad

What is a Monad? - Computerphile

Computerphile

2.6M subscribers • 70 videos on Hallway

YouTube
  • Recommended by 4 people: 1 on Lobsters and 3 in engineering communities.
  • A classic. People kept recommending it from 2017 to 2022.
  • Presented by Graham Hutton, Professor at the University of Nottingham

Beginner. No background in the topic needed.

665K views8 years ago4 recommendations

Programming languagesComputer scienceFunctional programmingComputation and complexity

Professor Graham Hutton explains the concept of monads in functional programming using Haskell examples like the Maybe monad.

Monads sound scary, but Professor Graham Hutton breaks down how handy they can be. facebook.com/computerphile twitter.com/computer_phile This video was filmed and edited by Sean Riley. Computer Science at the University of Nottingham: bit.ly/nottscomputer Computerphile is a sister project to Brady Haran's Numberphile. More at bradyharan.com

Why it's here

4 people recommend this

What people say. Highly recommended as one of the clearest and most accessible introductions to understanding monads.

Moments people linked to

u/srivkraniin r/haskell • Recommends

What is a Monad? - Computerphile

blakeon Lobsters • Recommends

What is a Monad? I know the Monad-tutorial is overdone, but I'm a audial-visual learner and this helped me a lot more than the average blog post on the topic.

u/Rungekkkutain r/functionalprogramming • Recommends

Can a Monad be understood as the wrapper(encapsulation) of a type, its side effects and proper handlers? I was watching Computerphile's video "What is a Monad" and at 16:42 he explains that the following implementations on a type are generally the idea of a Monad: ``` return :: a -> Maybe a ``` and sequencing: ``` >>= :: Maybe a -> (a -> Maybe b) -> Maybe b ``` Later he explains that it could work for other effects as well, so the way I understood it, is that instead of `Maybe`, we could generalize to `effect`, getting the following: ``` return :: a -> effect a -- sequence >>= :: effect a -> (a -> effect b) -> effect b ``` The way I understood it is that a Monad "encode"(not entirely…
5View on Reddit

u/grahamhuttonin r/compsci • Recommends

What is a monad? computerphile

u/jptboyin r/scala • Mentions

…ut Maybe/Option Monad correctly. I have been trying to learn functional programming for a while but it was really hard with Haskell and I never understood it. I always got stuck on the concept of Monads. I am learning Scala in college now, and Scala has made me feel like I have the capability to learn functional programming. I have watched this link to this video from Computerphile on Monads/evaluating expressions multiple times but i could never understand it in Haskell. I feel like I understand it in Scala and I think I translated the code correctly, but I wanted to post here to make sure I didn't do anything wrong. Is this scala code I wrote the correct implementation of the Haskell code in the v…

u/kamwitstain r/functionalprogramming • Mentions

On “What’s your favourite way to explain a monad to a beginner?”

Hands down this: link to this video

u/awenrivendellin r/haskell • Mentions

On “Don't fear the Monad - code example?”

This is the best video (by Professor Graham Hutton) about Monads I have encountered: link to this video

u/grahamhuttonin r/haskell • Mentions

On “Learning Haskell, finally got to Monads, would appreciate some learning resources.”

You might like to take a look at this Computerphile video on monads: [video There's also a series of videos on functors, applicative and monads as part of my advanced FP course: http://tinyurl.com/haskell-notts2 Hope this helps! Best wishes, Graham