[r6rs-discuss] [Formal] C sharp can pass arguments by reference
bitwize at gmail.com
Mon Jan 22 19:39:51 EST 2007
On 1/22/07, Bob Burger <burgerrg at gmail.com> wrote:
> Summary: C sharp can pass arguments by reference using the ref keyword. The
> language is not C hash, but C$^\sharp$ in LaTeX.
This actually made it to Wikipedia's lamest edit wars.
>From ECMA 334 (the C# standard):
> The name C# is pronounced "C Sharp".
> The name C# is written as the LATIN CAPITAL LETTER C (U+0043) followed by the
> NUMBER SIGN # (U+0023).
Yes, it's incorrect, strictly speaking according to musical notation.
But that's how Microsoft and ECMA refer to the language, so imho it's
better if the report stick to that.
Also on page six of the Scheme report is this:
> Note that call-by-value refers to a different distinction than the distinction between
> by-value and by-reference passing in Pascal. In Scheme, all data structures are
> passed by reference.
The report authors make relatively clear that "call by value" means
for Scheme the same as "call by value or reference", as contrasted
with "call by name" or "call by need".
Confusing terminology here, which needs some clarification (especially
in light of the fact that in Pascal or C by-reference semantics let
you remotely perform assignments to variables outside of your local
scope (is this true for C#?)). I think the distinction is rather
between lazy vs. strict, or normal vs. applicative order.
More information about the r6rs-discuss