Uniform function call syntax
Nick Sabalausky
a at a.a
Thu Oct 8 15:23:32 PDT 2009
"Jacob Carlborg" <doob at me.com> wrote in message
news:halgto$1kc0$1 at digitalmars.com...
> In the first D conference there was some talk about uniform function call
> syntax which allowed a.foo(x) and foo(a, x) to be interchangeable (just as
> we have now with arrays), what happened do that? Will it still happen?
>
Yea, I find not having that to be a painful inconsistancy. Been hoping for
that for a while.
> Except for the mentioned advantages in the talk I've found another use for
> it. When creating bindings to Objective-C it could be used to simulate
> categories which otherwise is quite hard simulate and doesn't scale well.
> The only way I found requires that the source is available of the class to
> add the methods to.
>
> I poked around in the DMD sources I found that it's really easy to add,
> just edit one line.
Can you please post the file, line number, old line, new line, and dmd ver?
Or submit a patch to bugzilla. That could be helpful for anyone who wants to
look into this furthur.
> However there is a problem it don't work for literals like 3.foo(), for
> that I think that parser needs to be modified.
>
>
> For those unfamiliar with Objective-C and categories: "A category allows
> you to add methods to an existing classeven to one to which you do not
> have the source",
> http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-SW1
>
Do you know if that actually affects the class itself (like adds an entry to
the vtable or , or something like that)? If not, that sounds like what C#
calls extension methods, which are just like what D does with arrays (except
that you have to actually declare the function to be an extension method -
which I've been kind of on the fence about as to whether I like that or
not).
More information about the Digitalmars-d
mailing list