Functional Programming in Modern C++: The Imperatives Must Go! – Victor Ciura – ACCU 2023



Functional Programming in Modern C++: The Imperatives Must Go! – Victor Ciura – ACCU 2023

Functional Programming in Modern C++: The Imperatives Must Go! - Victor Ciura - ACCU 2023

ACCU Membership: https://tinyurl.com/ydnfkcyn
https://accu.org
https://www.accuconference.org/

Functional Programming in Modern C++: The Imperatives Must Go! – Victor Ciura – ACCU 2023
Slides: https://accu.org/conf-previous/accu2023/

Can a language whose official motto is “Avoid Success at All Costs” teach us new tricks in modern C++ ?
If Haskell is so great, why hasn’t it taken over the world? My claim is that it has. But not as a Roman legion loudly marching in a new territory, rather as distributed Trojan horses popping in at the gates, masquerading as modern features or novel ideas in today’s mainstream languages. Functional Programming ideas that have been around for over 40 years will be rediscovered to solve our current software complexity problems.
Indeed, modern C++ has become more functional. From mundane concepts like lambdas & closures, std::function, values types and constants, to composability of STL algorithms, lazy ranges, folding, mapping or even higher-order functions in STL. Did I mention Rust yet?
In this session we’ll analyze a bunch of FP techniques in C++ and see how they help make our code shorter, clearer and faster, by embracing a declarative vs. an imperative style. We’ll visit the functional parts of current STL, use algebraic data types (ADT) and learn about the new FP stuff coming in the next C++ standard, like ranges or monadic extensions to std::future, std::optional and std::expected. Brace yourselves for a bumpy ride including composition, lifting, currying, partial application, pure functions, maybe even pattern matching and lazy evaluation.

Victor Ciura

Victor Ciura is a Principal Engineer on the Visual C++ team, helping to improve the tools he’s been using for years. Before joining Microsoft, he programmed C++ professionally for 20 years, designing and implementing several core components & libraries of Advanced Installer, improving the virtualization and repackaging technologies for MSI/MSIX.

One of his hobbies is tidying-up and modernizing aging codebases and has been known to build open-source tools that help this process: Clang Power Tools.

He’s a regular guest at Computer Science Department of his Alma Mater, University of Craiova, where he gives student lectures & workshops on using modern C++, STL, algorithms and optimization techniques.

More details: @ciura_victor & https://ciura.ro & linkedin.com/in/victor-ciura

YouTube Videos Filmed, Edited & Optimised by Digital Medium: https://events.digital-medium.co.uk

#accuconf #programming #cpp

Comments are closed.