1 2According to their name, MPL's *transformation*, or *sequence-building 3algorithms* provide the tools for building new sequences from the existing 4ones by performing some kind of transformation. A typical transformation 5alogrithm takes one or more input sequences and a transformation 6metafunction/predicate, and returns a new sequence built according to the 7algorithm's semantics through the means of its |Inserter| argument, which 8plays a role similar to the role of run-time |Output Iterator|. 9 10.. Say something about optionality of Inserters/their default behavior 11 12Every transformation algorithm is a |Reversible Algorithm|, providing 13an accordingly named ``reverse_`` counterpart carrying the transformation 14in the reverse order. Thus, all sequence-building algorithms come in pairs, 15for instance ``replace`` / ``reverse_replace``. In presence of variability of 16the output sequence's properties such as front or backward extensibility, 17the existence of the bidirectional algorithms allows for the most efficient 18way to perform the required transformation. 19 20.. |Transformation Algorithms| replace:: `Transformation Algorithms`_ 21 22.. |transformation algorithm| replace:: `transformation algorithm`_ 23.. _transformation algorithm: `Transformation Algorithms`_ 24.. |transformation algorithms| replace:: `transformation algorithms`_ 25 26 27.. copyright:: Copyright � 2001-2009 Aleksey Gurtovoy and David Abrahams 28 Distributed under the Boost Software License, Version 1.0. (See accompanying 29 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 30