Future of string lambda functions/string predicate functions

Tyler Jameson Little beatgammit at gmail.com
Wed Aug 14 00:10:37 PDT 2013


On Wednesday, 14 August 2013 at 05:44:50 UTC, Brad Anderson wrote:
> On Wednesday, 14 August 2013 at 02:05:16 UTC, Manu wrote:
>> Can you give an example where you've actually used a string 
>> lambda before
>> where the predicate is more complex than a basic comparison?
>> Surely the solution to this problem is to offer a bunch of 
>> templates that
>> perform the most common predicates in place of unary/binaryFun?
>>
>> So rather than: func!((a, b) => a < b)(args)
>> You use: func!binaryLess(args)
>>
>> Or something like that?
>>
>
> How about just "less"?  It's what C++ STL uses (std::less, 
> std::greater, std::negate, etc...). In C++, however, you have 
> to do some truly ugly stuff to actually make use of the 
> predefined function objects...bind1st...eww (the new C++11 bind 
> is only marginally better but C++11 does have lambdas now at 
> least).
>
>> The thing that annoys me about string vs proper lambda's, is 
>> that I never
>> know which one I'm supposed to use. I need to refer to 
>> documentation every
>> time.
>> Also, the syntax highlighting fails.

Or imitate bash:

Binary:
- gt: a > b
- ge: a >= b
- lt: a < b
- le: a <= b
- eq: a == b
- ne: a != b

Unary:
- z: (zero) a == 0 (if range, a.empty?)
- n: (non-zero) a != 0

Perhaps this is *too* terse?


More information about the Digitalmars-d mailing list