<div dir="ltr">On 9 April 2013 19:43, Joseph Rushton Wakeling <span dir="ltr"><<a href="mailto:joseph.wakeling@webdrake.net" target="_blank">joseph.wakeling@webdrake.net</a>></span> wrote:<br><div class="gmail_extra">
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 04/08/2013 08:14 PM, Simen Kjaeraas wrote:<br>
> Like others have stated, it's so you can do this:<br>
><br>
> struct Foo {<br>
>    int a = 0;<br>
>    pure int bar( int n ) { // Weakly pure<br>
>        a += n;<br>
>        return a;<br>
>    }<br>
> }<br>
><br>
> pure int Baz( int n ) { // Strongly pure<br>
>     Foo foo;<br>
>     return foo.bar( n );<br>
> }<br>
<br>
</div>... one clear application of this being pseudo-random number generation, where<br>
you have a state variable together with a (pure) update function.<br></blockquote><div><br></div><div style>There's nothing 'pure' about a function that has side effects. It's a totally different concept, and should be named appropriately.</div>
</div></div></div>