Rob;<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">[2] For &quot;immediate&quot; data types (ints, float), =&gt; and @=&gt; are identical: they move the data, not the pointer.  This is why<br>

        int foo;<br>
        int bar;<br>
        foo @=&gt; bar;  // assigns 0 to bar<br>
        1 =&gt; foo;       <br>
doesn&#39;t modify bar -- bar will still have a value of zero.<br>
<br>
Any disagreements?<br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank"></a></blockquote><div><br>Yes, sorry but I have to disagree. I don&#39;t see why I shouldn&#39;t be allowed to have primitives reference each other; I don&#39;t see any use in two operators accomplishing the same thing and when we&#39;d want another type of behaviour we&#39;d need to encapsulate the variable in a array.<br>
<br>Sadly the online language specification doesn&#39;t have a great deal to say on this but the manual states; &quot;similarly, reference assignment duplicates a reference to an object and assigns the reference to a reference variable. The object itself is not duplicated. All ChucK object assignments are reference assignments.&quot;<br>
</div></div><br>Sadly (for me) the ChucK parser disagrees with me and feels integers aren&#39;t objects, to demonstrate;<br><br>Object foo;<br>int bar @=&gt; foo; //this fails<br><br>True; the manual exclusively covers objects but it doesn&#39;t actually define what should happen in this case at all. It&#39;s my opinion that either @=&gt; and =&gt; should do something different  when applied to primitives or the assignment should at the very least cause a warning. I&#39;m leaning towards the first option as I can see uses for it. I might have a shred that periodically sends &quot;float foo&quot;  to the frequency of my instrument. I might then later want to assign some other variable to foo so that this shred will then send whatever that variable holds to this frequency.<br>
<br>The chuck operator &quot;=&gt;&quot; is &quot;masively overloaded&quot; and that&#39;s a good thing (hopefully) but it makes no sense to me to also overload &quot;@=&gt;&quot; to also mean &quot;=&gt;&quot; under certain conditions. To address Hans&#39;s point, the chuck operator can indeed be used on types that can be assigned as well; for example to connect UGens or to chuck Events to now. These things aren&#39;t mutually exclusive; Events and UGens can both be assigned and chucked to eachother.<br>
<br>Clearly there is no issue with dis-allowing certain operators on certain objects, we can&#39;t use &quot;%=&gt;&quot; on a Gain, for example. It&#39;s not clear to me why @=&gt; as applied to primitives is a exception here and is instead overloaded to mean &quot;=&gt;&quot;. It&#39;s no huge issue but I would like to understand why it is like it is.<br>
<br>Yours,<br>Kas.<br>