Thanks. Let go further.
On 20/01/12 15:58, Alex Rønne Petersen wrote:
On 20-01-2012 15:32, Jerome BENOIT wrote:Hello List: In tDlp book in section 5.6 entitled `Higher-Order Functions. Function Literals, the first code example is: ----------------------------------------------------------------- T[] find(alias pred, T)(T[] input) if (is(typeof(pred(input[0])) == bool)) { for(; input.length > 0; input = input[1 .. $]) { if (pred(input[0])) break; } return input; } ----------------------------------------------------------------- I can play it. Nevertheless, it is not clear for me right now what is the role played by `T' in the generic argument list (alias pred, T). (Its meaning is bypassed in this section via a `deduction' way.) Any hint is welcome. Thanks in advance, JeromeIt's important to realize that D does not have generics; rather, it has templates. What (alias pred, T) means is that it takes (virtually) any argument as the first template parameter (function literals included) and a type for the second parameter. You can call this function like so: auto ints = find!((x) { return x % 2 != 0; })([1, 2, 3, 4, 5]); Here, the type parameter T gets deduced from the argument, which is an array of ints.
What would be the non-deducible version ? Jerome
