`std::flip`
4 days ago
- #Functional Programming
- #C++
- #Standard Library
- std::flip is a utility from the C++ standard library that reverses the order of parameters in a callable.
- It is useful for creating new functions from existing ones without rewriting them, such as flipping the order of arguments in predicates.
- std::flip has roots in functional programming and is found in many languages and libraries like Haskell, OCaml, and JavaScript's Ramda.
- Common use cases include predicates, generic algorithms (e.g., sorting in descending order), and solving problems like the longest subsequence.
- It can also be used with folds (e.g., concatenating strings in reverse order) and to handle inconsistent APIs (e.g., geodetic coordinate systems).
- The article concludes with a C++17 implementation of std::flip, which is not part of the standard library but can be implemented manually.