algorithms instead. For example, the <aclass="link"href="algorithm/transformation/functions/transform.html"title="transform"><codeclass="computeroutput"><spanclass="identifier">transform</span></code></a> algorithm does not actually
return a transformed version of the original sequence. <aclass="link"href="algorithm/transformation/functions/transform.html"title="transform"><codeclass="computeroutput"><spanclass="identifier">transform</span></code></a> returns a <aclass="link"href="view/transform_view.html"title="transform_view"><codeclass="computeroutput"><spanclass="identifier">transform_view</span></code></a>. This view holds a
the <aclass="link"href="view/transform_view.html"title="transform_view"><codeclass="computeroutput"><spanclass="identifier">transform_view</span></code></a>
The <spanclass="emphasis"><em>lazy</em></span> evaluation scheme where <aclass="link"href="algorithm.html"title="Algorithm">Algorithms</a>
return <aclass="link"href="view.html"title="View">Views</a> also allows operations such
as <aclass="link"href="algorithm/transformation/functions/push_back.html"title="push_back"><codeclass="computeroutput"><spanclass="identifier">push_back</span></code></a> to be totally generic. In
Fusion, <aclass="link"href="algorithm/transformation/functions/push_back.html"title="push_back"><codeclass="computeroutput"><spanclass="identifier">push_back</span></code></a> is actually a generic algorithm
that works on all sequences. Given an input sequence <codeclass="computeroutput"><spanclass="identifier">s</span></code>
and a value <codeclass="computeroutput"><spanclass="identifier">x</span></code>, Fusion's <aclass="link"href="algorithm/transformation/functions/push_back.html"title="push_back"><codeclass="computeroutput"><spanclass="identifier">push_back</span></code></a> algorithm simply returns
a <aclass="link"href="view/joint_view.html"title="joint_view"><codeclass="computeroutput"><spanclass="identifier">joint_view</span></code></a>:
a view that holds a reference to the original sequence <codeclass="computeroutput"><spanclass="identifier">s</span></code>
and the value <codeclass="computeroutput"><spanclass="identifier">x</span></code>. Functions
result of a sequence extending operation like <aclass="link"href="algorithm/transformation/functions/push_back.html"title="push_back"><codeclass="computeroutput"><spanclass="identifier">push_back</span></code></a> does not retain the properties
of the original sequence such as associativity of <aclass="link"href="container/set.html"title="set"><codeclass="computeroutput"><spanclass="identifier">set</span></code></a>(s). To regain the original sequence,