Uniform function call syntax

retard re at tard.com.invalid
Wed May 26 17:44:50 PDT 2010


Thu, 27 May 2010 01:52:32 +0200, Simen kjaeraas wrote:

> On Thu, 27 May 2010 01:41:16 +0200, retard <re at tard.com.invalid> wrote:
> 
>> Wed, 26 May 2010 22:05:48 +0200, Jacob Carlborg wrote:
>>
>>> I've asked this before, probably several times: if and when will D get
>>> the uniform function call syntax that has been talked about? Example:
>>>
>>> void foo (int i) {}
>>> 3.foo();
>>>
>>> And please don't say it's already implemented because it isn't, I've
>>> heard that before.
>>
>> Are you sure you're not confusing two things.
>>
>> "The uniform access says that client code should not be affected by a
>> decision to implement an attribute as a field or method." -- Programming
>> in Scala
>>
>> The other is a term known as extension methods. "Extension methods
>> enable you to "add" methods to existing types without creating a new
>> derived type, recompiling, or otherwise modifying the original type."
>> -- http:// msdn.microsoft.com/en-us/library/bb383977.aspx
> 
> http://s3.amazonaws.com/dconf2007/WalterAndrei.pdf
> 
> Page 9. The idea is that foo(bar) may be replaced with bar.foo() and
> vice versa, making function calls 'uniform' in that both member
> functions and free functions may be called in the same manner.

I understood what you meant. It's just that the idea was invented before 
in C#. I usually give attribution to (and favor the term invented by) the 
original innovator, not the copycat. Those two features have only few 
differences, for example C# requires importing the symbols first with 
'using'. The proposed D feature is more careless here.


More information about the Digitalmars-d mailing list