This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
View analytic
Tuesday, September 9 • 9:00am - 10:00am
Practical Functional Programming in C++

Log in to save this to your schedule and see who's attending!

To the untrained eye, pure functional programming may appear to be out of place in our traditionally imperative C++ world. However, the functional paradigm has become increasing prominent in production C++ codes, especially when implementing asynchronous execution.

This talk is intended as a primer for attendees who are either unfamiliar with functional programming or have doubts its practical uses in modern C++. The following topics will be covered:

* Functions with Clear Inputs/Outputs (side effects, referential transparency/value semantics)
* Functions as First-Class Entities (function objects, C++11 lambda functions, Callable/std::function)
* The Algebra of Functions (higher-order functions/<algorithm>, currying/std::bind, composition)
* Down the Rabbit Hole: Monads and Parallelism (calling functions/std::async, std::future, .then()/when_all(), futurization)

Examples from different sectors of industry/academia will be presented throughout.

No prior functional programming knowledge will be needed. While this talk will cover some theory, coverage of non-C++ programming languages will be minimal. The focus of this talk will be the application of theories from FP to C++, not FP itself.

avatar for Bryce Adelstein Lelbach

Bryce Adelstein Lelbach

Lawrence Berkeley National Laboratory
Bryce Adelstein Lelbach is a researcher at Lawrence Berkeley National Laboratory (LBNL), a US Department of Energy research facility. Working alongside a team of hardware engineers and scientists, he develops and analyzes new parallel programming models for exascale and post-Moore architectures. Bryce is one of the developers of the HPX C++ runtime system. He spent five years working on HPX while he was at Louisiana State University's Center... Read More →

Tuesday September 9, 2014 9:00am - 10:00am

Attendees (147)