Aug 01 2021 09:03 PM
In Excel, we have functions with no argument such as PI(), RAND(), NOW().
However, it seems that we cannot define such a function by LAMBDA.
I tried in a cell `=LAMBDA(,4)()` (and expected 4 as return value), it raised a warning "You've entered too few arguments for this function".
Why cannot we define a function with no argument by LAMBDA?
Aug 01 2021 11:34 PM
SolutionYes, it seems to be possible. e.g. given a named reference 'x'
=LAMBDA(x+1)()
returns x+1.
=LAMBDA(x+1)
returns a #CALC! error.
If you name the Lambda function INCx then the same results are obtained for
=INCx()
and
=INCx
respectively. I think I have read of such functions being referred to as 'thunks' and would be used to pass a resource-intensive operation as a parameter without evaluating it before the result is needed.
The possibility of defining and testing for an optional parameter is being rolled out.
Aug 02 2021 04:47 AM
Aug 02 2021 06:39 AM
With latest lambdas edition your sample could be like
=LAMBDA([x],4)()
which returns 4. You have no arguments but have optional parameter.
Aug 02 2021 06:48 AM
Apr 20 2022 06:28 AM
@Tie CHENG You can actually do it just like you wanted, you just have to type the result directly, this means that:
=LAMBDA(4)() does return 4, and if you attach a parameter to it, it returns #VALUE