function with is own lamda expression

Ali Çehreli acehreli at yahoo.com
Sun Dec 1 00:22:41 PST 2013


On 11/30/2013 05:53 PM, bioinfornatics wrote:

 > I write a function with Lambda expression + safe + pure wich do same
 > (close) as countUntil
 >
 > http://www.dpaste.dzfl.pl/63d03540
 >
 > but i fail to use lambda expression into my function. I try by two way
 > - alias this pred … (to get a default lambda)
 > - function(…) pred
 >
 > both way i fail, could you take a look to code please.
 >
 > Goal is to get a pure and safe function
 >
 > thanks

The obvious problem in the code is the fact that although the intent and 
the lambda expression itself is written to take two parameters, the 
lambda is called without any arguments:

1) The default lambda takes two parameters:

   auto search( alias pred = (a,b) => a == b, R,T,S=T)( const ref R 
toSearch, in T toMatch ) pure

2) and the provided lambda takes two parameters:

	assert( arrStruct.search!( (a,b) => a.id == b )( 8uL ) == 7 );

3) However, the call itself takes no arguments:

               if( pred() ){

So, I would start with that call to debug and pass the two arguments 
that are appropriate (toSearch.front and toMatch, perhaps?)

Ali



More information about the Digitalmars-d-learn mailing list