Future of string lambda functions/string predicate functions

deadalnix deadalnix at gmail.com
Wed Aug 14 22:13:18 PDT 2013


On Thursday, 15 August 2013 at 02:30:50 UTC, Jonathan M Davis 
wrote:
> On Wednesday, August 14, 2013 09:26:20 Andrei Alexandrescu 
> wrote:
>> On 8/14/13 7:34 AM, H. S. Teoh wrote:
>> > That's a bit too terse. What about this:
>> > less // a < b
>> > less!(5) // a < 5
>> > lessEq // a <= b
>> > lessEq!(5) // a <= 5
>> > more // a > b
>> > more!(5) // a > 5
>> > moreEq // a >= b
>> > moreEq!(5) // a >= 5
>> > equal // a == b
>> > equal!(5) // a == 5
>> > notEqual // a != b
>> > notEqual!(5) // a != 5
>> 
>> At this point using "a < b" for a < b, "a < 5" for a < 5 etc. 
>> becomes
>> awfully attractive.
>
> I'd simply argue for doing something like binaryOp!"<" and 
> unaryOp!"-".
> Creating different names for all of the various operators is 
> not at all in line
> with how do things normally and definitely seems unattractive. 
> In contrast, by
> creating specific templates for operators, we cover the main 
> use cases where
> the string lambdas are more attractive than the newer lambda 
> literals. It's
> also in line with how do operator overloading.
>
> - Jonathan M Davis

Yes and avoid stupid template duplication like with "a>b" "a > b" 
or by not having equals delegate literals.

This is clearly the best option for simple operations. Complex 
operation should be migrated to delegate literals.


More information about the Digitalmars-d mailing list