BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations Why is a Monad Like a Writing Desk?

Why is a Monad Like a Writing Desk?

Bookmarks
30:38

Summary

Carin Meier tells the story of Alice discovering Monads, meeting three types of monads – Identity, Maybe, State-, and learning how to implement them in Clojure.

Bio

Carin Meier is a software developer at EdgeCase. She started off as a professional ballet dancer, studied Physics in college, and has been developing software for both the enterprise and entrepreneur for the past 15 years. She comes from a solid Java background, but has discovered a passion for the simplicity, power, and elegance of Clojure.

About the conference

Clojure/West is a new conference bringing the Clojure community together to discuss techniques, tools, and the state of the Clojure ecosystem March 16-17th for three tracks of sessions. Prior to the conference, register for three days of training by the Clojure experts.

Recorded at:

May 22, 2012

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Great!

    by Matjaz Muhic,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Excellent. I thought "this woman is gonna be soooo boring" at first but then she surprised me... :)

  • Nice!

    by Faisal Waris,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I struggled with monads too.

    Despite the presenters reservations, here is blog post that I hope will be helpful too:

    fwaris.wordpress.com/2011/07/30/understanding-m...

  • Very good!

    by Paulo Pinto,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thanks for the nice presentation, it was very good.

    I feel it is a video I can refer other people to, when they need to learn about monads.

  • Must watch!

    by vitalii voloshyn,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    This talk is soooo coool! Carin not only explained monads very nicely, but also showed how stories really help problem solving)))

  • m-tea question

    by Volodymyr Vitvitskyi,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    ((-> (return "me") (m-tea "you")))


    We call m-tea with one parameter "you" (seems to be name) while we have declared this functions with two parameters. How does it work ?

    Thanks

  • Re: m-tea question

    by Eric Scrivner,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    The key part is the "thrush" or threading operator ->

    This is a convenience operator for composing "thread" a value through a series of functions. -> Uses the first value as the first parameter to the functions which follow it. There is also a variant ->> which uses the first value as the last parameter to the functions that follow it.

    So

    ((-> (return "me") (m-tea "you")))

    Is really be evaluated as:

    ((m-tea (return "me") "you"))

  • Re: m-tea question

    by Volodymyr Vitvitskyi,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Thank you a lot

  • The mysterious red book

    by Tor Gausen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Best introduction to monads I've seen so far. I still don't quite get the whole thing about monads though.
    I know I'm two years late, but what is that red book on top of the pile?

  • Re: The mysterious red book

    by Carin Meier,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    It is Alice in Wonderland :)

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT