C++17: I See a Monad in Your Future

Abstract The introduction of lambdas and first class function objects forever changed the nature of C++, opening up the floodgates to functional programming. Sometimes the best library design is based on a pattern that's very familiar to a Haskell programmer but alien to a C++ programmer. The new std::future proposal for C++17 hides several functional patterns including that of a monad -- the boogeyman of generations of imperative programmers. But once seen in action, the monad becomes just one more pattern in the toolbox of a library designer. Bio Bartosz Milewski always tries to be where the action is. He started as a quantum physicist when supertstrings were hot, joined the software industry to build the search engine for Microsoft Windows, became an avid proponent of object-oriented programming, and wrote a book on C++. He got into concurrency and parallelism when the multicores hit the market, and now he's evangelizing functional programming as the Holy Grail of software development.

Related Talks

Scala Monads: Declutter Your Code With Monadic Design

Scala Monads: Declutter Your Code With Monadic DesignIn this video tutorial, Dan Rosen will show you how to use Scala's capacity for monadic design to eliminate repetitive boilerplate in your code. You'll learn to recognize places where the perpetual clutter of null checks, try-catch blocks and more can be hidden within a monad, to make your ...

Brian Beckman: Don't fear the Monad

Brian Beckman: Don't fear the MonadCross posted from msdn's channel 9. Functional programming is increasing in popularity these days given the inherent problems with shared mutable state that is rife in the imperative world. As we march on to a world of multi and many-core chipsets, software engineering must evolve to better equip software engineers with ...

Hey Underscore, You're Doing It Wrong!

Hey Underscore, You're Doing It Wrong!Brian Lonsdorf has a love-hate relationship with Underscore.js. Yes, it offers a bunch of tools included in today's functional programming paradigm (like map, filter, reduce, take, drop, compose, etc.), but in Underscore the functions are sometimes verbose and unintuitive. It claims to be a functional programming language, but how true ...

RACify Non-Reactive Code by Dave Lee • GitHub Reactive Cocoa Developer Conference

RACify Non-Reactive Code by Dave Lee • GitHub Reactive Cocoa Developer ConferenceFacebook's Dave Lee presents a talk about "RACifying" non-reactive code at the 2014 Reactive Cocoa Developer Conference hosted by GitHub. As always, feel free to leave us a comment below and don't forget to subscribe: http://bit.ly/subgithub Thanks! Connect with us. Facebook: http://fb.com/github Twitter: http://twitter.com/github Google+: http://google.com/+github LinkedIn: http://linkedin.com/company/github About GitHub GitHub is the best place to share code with ...