Im reading Jon Skeet book. ( Expression Trees Chapter)
It has an example of creating expression tree out of lambda Expressions :
Expression<Func<string, string, bool>> expression = (x, y) => x.StartsWith(y);
var compiled = expression.Compile();
Console.WriteLine(compiled("First", "Second"));
Console.WriteLine(compiled("First", "Fir"));
Now he is doing the same with expression tree :

question :
The yellow part already includes the params info !
why Do I have to specify AGAIN in the blue part those param ?
I think your question is:
Well, it certainly could, but how would it know in what order to accept those parameters in the general case?
In your example, how would it know whether to generate the expression-equivalent of:
(or)
Should your
lambda.Compile()("42", "4")returntrueorfalse?It can’t make these decisions on your behalf in the general case.