Omissible Parentheses...

Robert Jacques sandford at jhu.edu
Sun Aug 2 07:43:19 PDT 2009


On Sun, 02 Aug 2009 09:06:29 -0400, Chad J  
<chadjoan at __spam.is.bad__gmail.com> wrote:

> Robert Jacques wrote:
>> On Sat, 01 Aug 2009 16:00:52 -0400, Michiel Helvensteijn
>> <m.helvensteijn.remove at gmail.com> wrote:
>>
>>> Robert Jacques wrote:
>>>
>>>> I like them too (a lot). I find they increase the clarity of my code
>>>> (particularly function chaining).
>>>
>>> I think that when you find you need to use function-chaining, the
>>> functions
>>> (except possibly the rightmost) are often meant to be  
>>> properties/fields.
>>> That's why they would look more natural without parentheses.
>>>
>>
>> Nope. I meant _function_ chaining. This comment comes mostly from using
>> std.string and std.algorithm, whose functions don't behave as fields.
>> Both of these libraries show off the power you get from the flexibility
>> of function call / property duality. I've also used toggle/flag setting
>> methods in this way. It's concise, clean and very understandable.
>>
>
> Interesting.  I don't think I've seen this angle yet.
>
> Could you provide code examples, please?

Here are two examples from a couple of days ago:

auto data = (cast(string)std.file.read(filename)).chomp.split;

set_colour.uses = (new Texture!float4(mod,"TRANSFER",  
tranfer_data)).normalize.clamp.linear;

I'd also point out 'uses' is overloaded with a variadic version:

CCK_engine.uses( iCCK, a_p, a_p2, a_t);

There were also a bunch of std.algorithm examples in the newsgroup back  
with the new phobos was launched. (Though this only works for arrays)



More information about the Digitalmars-d mailing list